如何组合存储在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  c

 1  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

回到顶部