【发布时间】:2018-01-23 13:28:39
【问题描述】:
我正在尝试根据与另一个数据帧的匹配来替换一个数据帧中的某些值。
df1 <- data.frame("round" = c(1,1,1,2,2,2,3,3,3),
'geocode' = c('AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC'),
'value1' = c(111, 222, 333, NA, NA, NA, 777, 888, 999))
df2 <- data.frame('geocode' = c('AAA', 'BBB', 'CCC'), 'value2' = c(444, 555, 666))
期望的输出:
out.df <- data.frame("round" = c(1,1,1,2,2,2,3,3,3),
'geocode' = c('AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC'),
'value1' = c(111, 222, 333, 444, 555, 666, 777, 888, 999))
我尝试的解决方案:
df1[df1$round == 2, 'value1'] <- df2$value2[match(df1$geocode, df2$geocode)]
我似乎无法解决两个数据帧具有不同行数的事实。
【问题讨论】: