如何从不同长度的data.frames复制值?

时间:2017-04-14 13:16:32

标签: r dataframe

我正在尝试从一个data.frame提取特定值到另一个。这些帧具有不同的长度但名称相似(即'a'::'z''a'::'w'

names <- letters[1:26]

df1 <- data.frame("name" = names[1:20],"value" = rnorm(20, mean = 4, sd = 1))
df2 <- data.frame("name" = names[1:26],"value" = rnorm(26, mean = 4, sd = 1))

df2$value2 <- df1[df2$name %in% df1$name,]$value

上面的最后一行不起作用,但会产生以下错误:

Error in `$<-.data.frame`(`*tmp*`, "value2", value = c(4.21005563122984,  : 
  replacement has 20 rows, data has 24

有关我如何制作这样的内容的任何建议:

  name    value   value2
1    a 4.210056 5.918197
2    b 3.203976 4.485109
3    c 4.290336 4.210056
......
25   y 5.918197 NA
26   z 3.861640 NA

1 个答案:

答案 0 :(得分:0)

df2 $ value2 [df2 $ name%in%df1 $ name]&lt; - df1 $ value