gpt4 book ai didi

如果列值与另一个数据集中的两列之一匹配,则替换它们

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

我有如下示例数据:

library(data.table)
dat1 <- fread("code1 code2 code3
A3 B2 C1
A4 B3 C2")

dat2 <- fread("codes
A3
A4
B2
B3")

我只想用 dat1 中的 code3 替换 dat2 中的代码。

期望的输出:

dat_out <- fread("codes
C1
C2
C1
C2")

我应该怎么做?

最佳答案

如果您正在使用 data.table,我们可以使用 melt 和 join by on = ...,例如,

dat2[
melt(dat1, id.var = "code3"),
.(codes = code3),
on = c(codes = "value")
]

给出


> dat2[melt(dat1, id.var = "code3"), .(codes = code3), on = c(codes = "value")]
codes
1: C1
2: C2
3: C1
4: C2

melt(dat1, id.var = "code3") 看起来像

> melt(dat1, id.var = "code3")
code3 variable value
1: C1 code1 A3
2: C2 code1 A4
3: C1 code2 B2
4: C2 code2 B3

关于如果列值与另一个数据集中的两列之一匹配,则替换它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74572928/

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