gpt4 book ai didi

r - 为什么 data.table::B[A] 和 plyr::join(A,B) 返回不同的结果?

转载 作者:行者123 更新时间:2023-12-02 07:59:58 27 4
gpt4 key购买 nike

我在 R 中有 2 个数据表

A <- data.table(a = 1:4, b = 12:15)
B <- data.table(a = 2:3, b = 13:14)

使用时

C<-plyr::join(A,B)

返回

   a  b
1: 1 12
2: 2 13
3: 3 14
4: 4 15

当我使用的时候

setkey(A, "a")
setkey(B, "a")
B[A]

返回

   a  b i.b
1: 1 NA 12
2: 2 13 13
3: 3 14 14
4: 4 NA 15

为什么两个函数的结果不同?plyr 正在对所有匹配的变量应用左连接。Data.table 也在做同样的事情吗?我们如何使用'data.table'实现'plyr'给出的结果?

最佳答案

使用 data.table 版本 >= 1.12.4,您可以使用 on=.NATURAL(请参阅标题为 data.table v1.12.4(2019 年 10 月 3 日)的部分下的新闻项目 10 here )

library(data.table) #above and incl data.table_1.12.4
A <- data.table(a = 1:4, b = 12:15)
B <- data.table(a = 2:3, b = 13:14)
B[A, on=.NATURAL]

输出:

   a  b
1: 1 12
2: 2 13
3: 3 14
4: 4 15

关于r - 为什么 data.table::B[A] 和 plyr::join(A,B) 返回不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58691465/

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