根据另一个数据帧的值为数据框创建一个新列

时间:2017-03-30 20:34:21

标签: r

我有一个这样的数据框:

name
Google
Amazon
Google
Yahoo
Google
Yahoo

另一个像这样:

name   stock_name
Google  stockA
Amazon  stockB
Yahoo   stockC

我想从这两个数据帧的合并中得出最终结果:

name stock_name
Google stockA
Amazon stockB
Google stockA
Yahoo  stockC
Google stockA
Yahoo  stockC

使用合并是不可能的。任何关于如何成功的后记?

2 个答案:

答案 0 :(得分:1)

如果您调用数据框df1和df2,则可以执行

 df1$stock_name <- df2$stock_name[match(df1$name, df2$name)]

答案 1 :(得分:0)

另一种解决方法:

df1 <- data.frame(data = c("Google", "Amazon", "Google", "Yahoo", "Google", "Yahoo"))

df2 <- data.frame(data = c("Google" = "stockA", "Amazon"  = "stockB", "Yahoo" = "stockC"))
colnames(df2) <- "stock_name"

df1$stock_name <- df2[df1$data, 1]