R语言中如何筛选数据框中满足条件的指定单列(列c)
解决方法
你当前的代码存在两个问题:
- 条件列名写错:你要筛选的是列
d的值为B或C,但代码里写的是b == "B" | y == "C",这里的y应该替换成d subset()默认返回符合条件的整行数据,若只想保留列c,需要额外指定列选择参数
以下是几种可行的修正写法:
方法一:修正后的subset写法
# 指定select参数仅保留列c,同时修正条件列名 subset(DFAsg1, d == "B" | d == "C", select = c) # 用%in%简化多值判断的写法 subset(DFAsg1, d %in% c("B", "C"), select = c)
方法二:基础索引写法
如果不习惯用subset,直接用数据框索引也能实现需求:
# 行索引筛选d列为B/C的行,列索引指定只取c列 DFAsg1[DFAsg1$d %in% c("B", "C"), "c"]
方法三:dplyr包写法(适合复杂数据处理场景)
如果后续需要做更多数据操作,dplyr的链式语法会更直观:
library(dplyr) DFAsg1 %>% filter(d %in% c("B", "C")) %>% pull(c)
内容的提问来源于stack exchange,提问作者Reb83
相关产品推荐
相关产品推荐

