繁体   English   中英

R:根据条件(不同大小的数据框)从另一个数据框的列中为列分配值

[英]R: Assign values to column, from a column from another data frame, based on a condition (different sized data frames)

我需要在df1中创建一个名为col_2的新列,并从另一个数据框( df2 )为其分配值。 df1col_1中的值等于df2col_a中的值时,我希望将df2col_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM