gpt4 book ai didi

R data.table 在一个字段上执行内部连接并在另一个字段上操作?

转载 作者:行者123 更新时间:2023-12-04 17:10:09 25 4
gpt4 key购买 nike

我有以下场景,我首先创建一个如下图所示的数据表

x = data.table(f1 = c('a','b','c','d'))
x = x[,rn := .I]

这产生
> x
f1 rn
1: a 1
2: b 2
3: c 3
4: d 4
>

其中 rn 只是行号。现在,我有另一个 data.table y 作为
y = data.table(f2=c('b','c','f'))

我希望能够做的是对于 y 中 x 中的元素,我想从 rn 中的相应值中减去 2。所以预期的 data.table 是
x
f1 rn
1: a 1
2: b 0
3: c 1
4: d 4

如何达到这一点? x[y]y[x]根本没有帮助,因为他们只是加入。

最佳答案

您可以使用 %chin%i子集 x按所需的行,然后运行您的 j表达...

x[ f1 %chin% y$f2 , rn := rn - 2L ]
x
# f1 rn
#1: a 1
#2: b 0
#3: c 1
#4: d 4
%chin%%in%的快速版本专门用于 data.table 附带的字符向量的运算符.请注意 2应该是 2L指定一个 "integer"类型,否则你会得到一个警告(如果你正在处理 "numeric" 数据类型,显然不要使用它)。

关于R data.table 在一个字段上执行内部连接并在另一个字段上操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19848710/

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