我的数据框df1如下
A B
#1 1 3,4
#2 2 5
#3 3 4,1
#4 4 1,3
#5 5 2
我想用下面的数据框DF2
替换ID为A的A和B列号 ID DATA
#1 101 data1
#2 503 data2
#3 890 data3
#4 1164 data4
#5 5367 data5
而不是1,2,3 ... DF1应该包含如下数据(预期输出只是替换A,B列中列出的数字和相应的ID)
A B
#1 101 890,1164
#2 503 5367
#3 890 1164,101
#4 1164 101,890
#5 5367 503
请让我一个方法来实现这一目标。感谢
答案 0 :(得分:2)
对于第一栏,它是直截了当的:
df1$A <- df2[df1$A,"ID"]
对于第二列,由于多值列,您必须使用strsplit
和paste
:
df1$B <- sapply(df1$B, function(s)
paste(
df2[strsplit(as.character(s),",")[[1]],"ID"],
collapse=","))
df1
A B
1 101 890,1164
2 503 5367
3 890 1164,101
4 1164 101,890
5 5367 503