我正在尝试从一个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
答案 0 :(得分:0)
df2 $ value2 [df2 $ name%in%df1 $ name]&lt; - df1 $ value