R语言求助:仅将d2中label_name为A、B的行绑定到d1
解决方案
你需要先从d2中筛选出目标物种的行,再和d1进行行绑定。以下是两种可靠实现方式:
Base R 实现
- 筛选d2中仅包含A、B的行:
d2_filtered <- d2[d2$label_name %in% c("A", "B"), ]
- 将筛选后的d2与d1行绑定:
combined_df <- rbind(d1, d2_filtered)
Tidyverse(dplyr)实现
如果之前用filter失败,大概率是语法或包加载问题:
- 先加载dplyr包:
library(dplyr)
- 筛选目标行:
d2_filtered <- d2 %>% filter(label_name %in% c("A", "B"))
- 行绑定:
combined_df <- bind_rows(d1, d2_filtered)
说明之前方法失败的原因
if是标量判断函数,无法对数据框的整列向量做筛选,自然无效。filter如果没加载dplyr、用==替代%in%(多值匹配时==会出错)、或者条件写法错误,都会导致失败。merge是用于列匹配的连接操作,不是行堆叠,所以达不到你要的绑定效果。
内容的提问来源于stack exchange,提问作者Avosandokan
相关产品推荐
相关产品推荐

