根据第二个数据帧列中的匹配替换数据帧列中的值
问题描述:
我已经在堆栈溢出中看到了大约6个这样的解决方案,但都使用'within'处理单个数据帧内的匹配。我需要跨越多个dataframes进入溶液:根据第二个数据帧列中的匹配替换数据帧列中的值
我有在数据帧的列1
DF1 $ A的值:1,2,1,3,2,6,4,5” ,8,8,2,7,4等“。
我与 '密钥',将这些代码
DF2 $ A的第二数据帧:“1,2,3,4,5,6,7,8,9,10 “
DF2 $ B:”馅饼,披萨,汉堡包等“
如何更改DF1 $ A中的值以匹配DF2 $ B中的值?
答
你可以用match
做到这一点作为一个指向特定位置在df2$B
:
# make some toy data
set.seed(1)
df1 <- data.frame(A = sample(seq(3), 10, replace = TRUE))
df2 <- data.frame(A = seq(3), B = c("pizza", "hot dog", "hamburger"), stringsAsFactors = FALSE)
df1$B <- df2$B[match(df1$A, df2$A)]
结果:
> df1
A B
1 3 hamburger
2 1 pizza
3 2 hot dog
4 1 pizza
5 1 pizza
6 2 hot dog
7 1 pizza
8 2 hot dog
9 3 hamburger
10 2 hot dog
这壮观的工作。谢谢!! – RickGrimesOfAlexandria