如何组合存储在R列表中的数据框?
为了组合存储在 R 中的列表中的数据帧,我们可以在 Reduce 函数中使用 dplyr 包的 full_join 函数。
例如,如果我们有一个名为 LIST 的列表,其中包含一些数据帧,那么我们可以使用以下命令组合这些数据帧 -
Reduce(full_join,LIST)
查看下面给出的示例以了解此命令的输出。
示例
以下代码段创建了一个示例数据框 -
df1<-data.frame(x=rpois(10,2),y=rpois(10,5),z=rpois(10,2))df2<-data.frame(z=rpois(10,2),a=rpois(10,8),b=rpois(10,3))
df3<-data.frame(b=rpois(10,5),z=rpois(10,8),c=rpois(10,5))
List<-list(df1,df2,df3)
List
创建了以下数据框
[[1]]x y z
1 2 5 2
2 1 3 0
3 3 7 0
4 6 3 2
5 3 5 3
6 0 10 0
7 3 4 0
8 1 5 1
9 3 3 1
10 1 3 1
[[2]]
z a b
1 0 7 3
2 3 8 6
3 2 9 4
4 0 7 3
5 6 14 1
6 1 6 3
7 0 7 2
8 3 7 4
9 2 6 3
10 1 9 3
[[3]]
b z c
1 4 6 5
2 5 9 4
3 7 9 4
4 4 10 10
5 3 2 3
6 7 8 7
7 3 4 2
8 5 7 9
9 6 8 7
10 5 10 9
要加载 dplyr 包并将存储在 List 中的数据帧合并到上面创建的数据帧中,请将以下代码添加到上面的代码片段中 -
df1<-data.frame(x=rpois(10,2),y=rpois(10,5),z=rpois(10,2))输出结果df2<-data.frame(z=rpois(10,2),a=rpois(10,8),b=rpois(10,3))
df3<-data.frame(b=rpois(10,5),z=rpois(10,8),c=rpois(10,5))
List<-list(df1,df2,df3)
List
library(dplyr)
Reduce(full_join,List)
Joining, by = "z"
Joining, by = c("z", "b")
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
x y z a b c1 2 5 2 9 4 NA
2 2 5 2 6 3 3
3 1 3 0 7 3 NA
4 1 3 0 7 3 NA
5 1 3 0 7 2 NA
6 3 7 0 7 3 NA
7 3 7 0 7 3 NA
8 3 7 0 7 2 NA
9 6 3 2 9 4 NA
10 6 3 2 6 3 3
11 3 5 3 8 6 NA
12 3 5 3 7 4 NA
13 0 10 0 7 3 NA
14 0 10 0 7 3 NA
15 0 10 0 7 2 NA
16 3 4 0 7 3 NA
17 3 4 0 7 3 NA
18 3 4 0 7 2 NA
19 1 5 1 6 3 NA
20 1 5 1 9 3 NA
21 3 3 1 6 3 NA
22 3 3 1 9 3 NA
23 1 3 1 6 3 NA
24 1 3 1 9 3 NA
25 NA NA 6 14 1 NA
26 NA NA 6 NA 4 5
27 NA NA 9 NA 5 4
28 NA NA 9 NA 7 4
29 NA NA 10 NA 4 10
30 NA NA 8 NA 7 7
31 NA NA 4 NA 3 2
32 NA NA 7 NA 5 9
33 NA NA 8 NA 6 7
34 NA NA 10 NA 5 9
以上是 如何组合存储在R列表中的数据框? 的全部内容, 来源链接: utcz.com/z/360249.html