gpt4 book ai didi

R data.table J 行为

转载 作者:行者123 更新时间:2023-12-04 10:43:46 24 4
gpt4 key购买 nike

我仍然对 data.table J 的行为感到困惑。

> DT = data.table(A=7:3,B=letters[5:1])
> DT
A B
1: 7 e
2: 6 d
3: 5 c
4: 4 b
5: 3 a
> setkey(DT, A, B)

> DT[J(7,"e")]
A B
1: 7 e

> DT[J(7,"f")]
A B
1: 7 f # <- there is no such line in DT

但是DT中没有这样的行。为什么我们会得到这个结果?

最佳答案

数据表J(7, 'f')字面上是单行 data.table你加入自己的data.table和。当您调用 x[i] ,您正在查看 i 中的每一行并在 x 中找到所有匹配项.默认是给 NA i 中的行不匹配任何内容,通过向 DT 添加另一列更容易看到:

DT <- data.table(A=7:3,B=letters[5:1],C=letters[1:5])
setkey(DT, A, B)
DT[J(7,"f")]
# A B C
# 1: 7 f NA

您看到的是 J 中的唯一一行与 DT 中的任何内容都不匹配.防止 data.table从报告不匹配,您可以使用 nomatch=0
DT[J(7,"f"), nomatch=0]
# Empty data.table (0 rows) of 3 cols: A,B,C

关于R data.table J 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23754552/

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