我需要用其他表上存在的值写一列。这是一个最小的数据示例:
data1 <- data.frame(col1 = c("Jack", "Gina", "Helen", "John"))
data2 <- data.frame(col2 = c("Gina", "Ed", "John", "Sara"))
我需要以下输出所必需的代码:
col1 col2
1 Jack NA
2 Gina Gina
3 Helen NA
4 John John
在其中填充了一个名为data1$col2
的新列的情况下,复制了data1$col1
形式的值,但前提是该值出现在data2
上。
答案 0 :(得分:3)
transform(data1, col2 = as.character(data2$col2[match(data1$col1, data2$col2)]))
# col1 col2
#1 Jack <NA>
#2 Gina Gina
#3 Helen <NA>
#4 John John
答案 1 :(得分:3)
我们可以在col2
中复制data2
的列信息以创建一个名为col1
的新列,然后使用col1
作为在{之间进行连接的键{1}}和data1
。 data2
是最终输出。
data3
答案 2 :(得分:2)
带有data.table
library(data.table)
setDT(data1)[data2, col2 := col2, on = .(col1 = col2)]
data1
# col1 col2
#1: Jack <NA>
#2: Gina Gina
#3: Helen <NA>
#4: John John