为同一群集中的所有元素分配相同的值

时间:2017-10-21 20:13:25

标签: r

假设我有下表:

public class Size

我的目标:对于数据集中的所有相同ID,请指定相同的文本值。例如,在这种情况下,我想将Text2和Text3更改为Text1,因为ID列中的值与Prior ID中的值相同。

1 个答案:

答案 0 :(得分:0)

使用data.table

的解决方案
library(data.table)
# Original table should be named d
setDT(d)

res <- merge(d, d[ID == `Prior ID`], "ID", all.x = TRUE)[is.na(Text.y), Text.y := Text.x]
res <- res[, .(Text = Text.y, ID, `Prior ID` = `Prior ID.x`)]

res
    Text ID Prior ID
1: Text1  1        1
2: Text1  1        2
3: Text1  1        3
4: Text4  2        4