R 匹配数据帧中的值
考虑以下两个数据帧:R 匹配数据帧中的值,r,dataframe,match,R,Dataframe,Match,考虑以下两个数据帧: > df1 <- data.frame(vals = c("a","b","c"), index = 1:3) > > df1 vals index 1 a 1 2 b 2 3 c 3 > > df2 <- data.frame(a = c("x1","x2","x3"), b = c("a,b,c","b,c","a,c")) > > df2 a b 1
> df1 <- data.frame(vals = c("a","b","c"), index = 1:3)
>
> df1
vals index
1 a 1
2 b 2
3 c 3
>
> df2 <- data.frame(a = c("x1","x2","x3"), b = c("a,b,c","b,c","a,c"))
>
> df2
a b
1 x1 a,b,c
2 x2 b,c
3 x3 a,c
>df1
>df1
VAL指数
1 a 1
2 b 2
3 c 3
>
>df2
>df2
a b
1 x1 a、b、c
2×2 b,c
3×3 a,c
我试图使用列vals
作为匹配标准,用数据框df1
中的值index
替换数据框df2
中b
的值。然而,数据帧df2
的列b
是一个逗号分隔的字符串,这使得它更加复杂
有人能帮忙吗?df2$c
df2$c <- sapply(strsplit(as.character(df2$b),","),function(x) {
paste(df1[na.omit(match(x,df1$vals)),"index"],collapse=",")
})
# a b c
# 1 x1 a,b,c 1,2,3
# 2 x2 b,c 2,3
# 3 x3 a,c 1,3