gpt4 book ai didi

r - 如果在更新列中,则合并到数据集并替换当前值

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

使用以下数据框。我想创建一个新的数据框,其中 df2 中 ID 的数量用“更新数量”值更新,ID 用“Update_ID”值替换(可能会或可能不会从当前 ID 更改。

df1 <- data.frame(ID = LETTERS[1:10],Quantity = c(1,2,3,4,5,6,7,8,9,10))
df2 <- data.frame(Cur_ID = c("A","C","D","H"), Update_ID = c("A","C","X","Y"), Update_Quantity = c(20, 21, 22, 23))

desired df3:
ID letters
A 20
B 2
C 21
X 22
E 5
F 6
G 7
Y 23
I 9
J 10

即df2 中 all 的数量是更新,如果 Update_ID 与 Cur_ID 不同,则为 ID。

最佳答案

使用data.table加入

library(data.table)
setDT(df1)[df2, c('ID', 'Quantity') := .(Update_ID,
Update_Quantity), on = .(ID = Cur_ID)]

-输出

> df1
ID Quantity
<char> <num>
1: A 20
2: B 2
3: C 21
4: X 22
5: E 5
6: F 6
7: G 7
8: Y 23
9: I 9
10: J 10

关于r - 如果在更新列中,则合并到数据集并替换当前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72900589/

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