gpt4 book ai didi

r - 合并大量 data.frames

转载 作者:行者123 更新时间:2023-12-02 08:36:31 27 4
gpt4 key购买 nike

Possible Duplicate:
Merge multiple data frames in a list simultaneously

示例data.frames :

 df1 = data.frame(id=c('1','73','2','10','43'),v1=c(1,2,3,4,5)) <br>
df2 = data.frame(id=c('7','23','57','2','62','96'),v2=c(1,2,3,4,5,6)) <br>
df3 = data.frame(id=c('23','62'),v3=c(1,2)) <br>

注:id每个 data.frame 都是唯一的。我希望生成的矩阵看起来像

1      1 NA NA 
2 3 4 NA
7 NA 1 NA
10 4 NA NA
23 NA 2 1
43 5 NA NA
57 NA 3 NA
62 NA 5 2
73 2 NA NA
96 NA 6 NA

在本例中,我只显示 3 个数据集,实际上我至少有 22 个数据集,所以最后我想要一个 nx(22+1) 矩阵,其中 n 是所有 22 个数据集的 id 数量。

给定 2 个数据集,我需要获取它们的 ids第一列、第二列、第三列填入数值,如果没有数值则输入 NA相反。

最佳答案

将它们放入列表中,并使用mergeReduce

Reduce(function(x, y) merge(x, y, all=TRUE), list(df1, df2, df3))
# id v1 v2 v3
# 1 1 1 NA NA
# 2 10 4 NA NA
# 3 2 3 4 NA
# 4 43 5 NA NA
# 5 73 2 NA NA
# 6 23 NA 2 1
# 7 57 NA 3 NA
# 8 62 NA 5 2
# 9 7 NA 1 NA
# 10 96 NA 6 NA

您还可以使用这个更简洁的版本:

Reduce(function(...) merge(..., all=TRUE), list(df1, df2, df3))

关于r - 合并大量 data.frames,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14096814/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com