在R中基于ID仅合并满足var1=1条件的数据框行
仅当特定列满足条件时合并R数据框
方法1:基础R实现
先通过merge()做左连接保留df1的所有行,再根据var1的条件修改var2的值:
# 执行左连接 df_merged <- merge(df1, df2, by = "id", all.x = TRUE) # 将var1不等于1的行的var2设为NA df_merged$var2[df_merged$var1 != 1] <- NA # 查看结果 df_merged
方法2:dplyr包实现(更简洁)
借助dplyr的管道语法和条件赋值,一步完成:
library(dplyr) df3 <- df1 %>% left_join(df2, by = "id") %>% mutate(var2 = ifelse(var1 == 1, var2, NA)) # 查看结果 df3
两种方法最终都会生成你需要的结果:仅var1=1的行匹配df2的var2值,其余行var2为NA。
内容的提问来源于stack exchange,提问作者Reuben Long
相关产品推荐
相关产品推荐

