gpt4 book ai didi

r - 根据相似的列值将数据框连接在一起

转载 作者:行者123 更新时间:2023-12-04 11:26:58 24 4
gpt4 key购买 nike

具体来说,假设我有三个数据帧 d1, d2, d3 :
d1 :

       X     Y    Z    value
1 0 20 135 43
2 0 4 105 50
3 5 18 20 10
...
d2 :
       X     Y    Z    value
1 0 20 135 15
2 0 4 105 14
3 2 9 12 16
...
d3 :
       X     Y    Z    value
1 0 20 135 29
2 2 9 14 16
...

我希望能够组合这些数据框,使得组合数据框的每一行都包含三个值,基于所有唯一的 X、Y、Z 组合。如果原始数据帧之一中不存在这样的 X、Y、Z 组合,那么我只希望它的值为 null(如果不可能,则为某个任意低的数字)。所以我想要一个输出:
dfinal :
       X     Y    Z    value1  value2  value3
1 0 20 135 43 15 29
2 0 4 105 50 14 null
3 5 18 20 10 null null
4 2 9 12 null 16 null
5 2 9 14 null null 16
...

有没有什么有效的方法可以做到这一点?我试过用 data.table 来代替这似乎更适合于此,但尚未弄清楚如何。

最佳答案

?merge

应该做的伎俩?
 By default the data frames are merged on the columns with names they both have, but separate specifications of the columns can be given by by.x and by.y.

所以:
merge(d1,d2, by=c("X","Y","Z"))

您可以包含 all=TRUE,以获得完整的行。
丢失的数据将是 NA
    merge(d1,d2, by=c("X","Y","Z"), all=TRUE)

关于r - 根据相似的列值将数据框连接在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30094293/

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