gpt4 book ai didi

r - 使用联接将一个数据表中的值分配给另一个数据表

转载 作者:行者123 更新时间:2023-12-02 04:51:01 24 4
gpt4 key购买 nike

<分区>

我有一个较大的主 data.table 和不同的进程,每个进程修改它的不同子集。然后我需要用每个进程所做的更改更新主表。

这是一个例子:

# Master table
dtA <- data.table(month=month.abb[1:5],act=letters[1:5],col1=(1:5)^2, col2=(5:9)^3)

# "subsidiary" table
dtB <- data.table(month=month.abb[3:4],act=letters[3:4],col1=(6:7)^3)

setkey(dtA, month,act)
setkey(dtB, month,act)

dtA
month act col1 col2
1: Apr d 16 512
2: Feb b 4 216
3: Jan a 1 125
4: Mar c 9 343
5: May e 25 729

dtB
month act col1
1: Apr d 343
2: Mar c 216

# The result I want is:
month act col1 col2
1: Apr d 343 512
2: Feb b 4 216
3: Jan a 1 125
4: Mar c 216 343
5: May e 25 729

几乎是偶然的,而且令我非常惊讶的是,因为我没有在其他地方看到过这方面的记录,我发现了这种非常简单的方法:

dtA[dtB, col1:=i.col1]

我的问题:这是解决我的问题的合法方法吗?动态执行此操作的语法是什么,例如如果我有很多列要同时设置到我的主表中?

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