[英]R: Assign values to column, from a column from another data frame, based on a condition (different sized data frames)
我需要在df1
中创建一个名为col_2
的新列,并从另一个数据框( df2
)为其分配值。 当df1
中col_1
中的值等于df2
中col_a
中的值时,我希望将df2
的col_b
的相应值分配给col_2
。 数据框的大小不同。
数据:
col_1 <- c(23,31,98,76,47,65,23,76,3,47)
col_2 <- NA
df1 <- data.frame(col_1, col_2)
col_a <- c(1:100)
col_b <- c(runif(100,0,1))
df2 <- data.frame(col_a, col_b)
我尝试了以下但似乎没有工作......我一直遇到同样的问题,数据帧的长度不同。
for (i in 1:10){
if(df1$col_1[i] == df2$col_a[]){
df1$col_2[i] == df2$col_b[]
}
}
df1$col_2 <- ifelse(df2$col_a %in% df1$col_1, df2$col_b, NA)
df1$col_1[df1$col_1 %in% df2$col_a] <- df2$col_b[df1$col_1 %in% df2$col_a]
我们可以使用left_join
library(dplyr)
left_join(df1, df2, by = c('col_1' = 'col_a'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.