r - 有没有办法通过从 R 中的列表加入来创建数据框?
问题描述
我有一个列表,命名ind_prov
和结构如下:
- 它有 22 个元素。
- 所有元素都是类“tbl_df”“tbl”“data.frame”。
- 每个元素都有三个 colmun。
- 第一栏:fecha
- 第二栏:省
- 第三列:一个元素,一个名为 list_vars 的向量,长度为 22。
- 示例:names(ind_prov[[1]]) 等于“fecha”“provincia”“emp_pob”。emp_pob 是向量 list_vars 的第一个元素。
我想要一个这样的data.frame,但有22个元素:
> provincias <-
+ ind_prov[[list_vars[1]]] %>%
+ left_join(ind_prov[[list_vars[2]]],
+ by = c("fecha", "provincia")) %>%
+ left_join(ind_prov[[list_vars[3]]],
+ by = c("fecha", "provincia"))
> provincias
# A tibble: 2,086 x 5
fecha provincia emp_pob ofc_pob caje_pob
<date> <chr> <dbl> <dbl> <dbl>
1 2013-03-01 Monte Cristi 0.000184 0.0000117 0.0000235
2 2013-03-01 San Pedro de Macorís 0.00413 0.0000869 0.000799
3 2013-03-01 San Pedro de Macorís 0.00413 0.000191 0.000799
4 2013-03-01 El Seibo 0.000152 0.00000338 0.0000236
5 2013-03-01 El Seibo 0.000152 0.0000101 0.0000236
6 2013-03-01 Hato Mayor 0.000339 0.00000595 0.0000535
7 2013-03-01 Hato Mayor 0.000339 0.0000297 0.0000535
8 2013-03-01 Monte Plata 0.0000215 0.00000117 0.00000430
9 2013-03-01 Monte Plata 0.0000215 0.000000782 0.00000430
10 2013-03-01 Azua 0.000634 0.0000474 0.0000533
# ... with 2,076 more rows
我不想这样做:
provincias <-
ind_prov[[list_vars[1]]] %>%
left_join(ind_prov[[list_vars[2]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[3]]],
by = c("fecha", "provincia"))
left_join(ind_prov[[list_vars[4]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[5]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[6]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[7]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[8]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[9]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[10]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[11]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[12]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[13]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[14]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[15]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[16]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[17]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[18]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[19]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[20]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[21]]],
by = c("fecha", "provincia")) %>%
left_join(ind_prov[[list_vars[22]]],
by = c("fecha", "provincia"))
解决方案
推荐阅读
- android - .firebase.database.DatabaseReference com.google.firebase.database.FirebaseDatabase.getReference(java.lang.String)' 在空对象引用上
- google-api - 不需要验证的应用会显示“此应用未验证”警告
- vb.net - 此代码在 MS Access 中更新数据库值是否有任何问题?
- r - 如何根据另一个数据框在数据框中插入缺失的行
- c# - 如何从 C++ 获取计算值到 C#
- excel - 默认值 表单控件 Combobox 选择后仍然存在
- reactjs - 输入屏蔽在验证 DatePicker 中不起作用
- node.js - 引导下拉菜单上的链接不起作用
- javascript - 获取大数据以在 Datatable 上呈现 - ReactJS
- javascript - 将对象/方法从 chrome 扩展公开到网页