R语言如何根据另一列条件提取指定列值生成列表
R 按条件提取 DataFrame 列值的实现方法
基础R原生实现(无需额外安装包,适合初学者)
直接使用R的向量化索引即可完成需求,无需循环遍历,代码如下:
# 筛选quant列不为NA的行,提取对应names列的值 result <- my.data$names[!is.na(my.data$quant)]
代码说明:
is.na(my.data$quant)会返回一个和quant列长度相同的逻辑向量,对应位置为TRUE表示该值是NA- 加
!取反后,得到所有quant非NA的行标记 - 用该逻辑向量索引names列,即可直接拿到符合条件的取值
运行后result就是你需要的c("Word1", "Word3")字符向量,如果需要显式转为列表格式,再执行result <- as.list(result)即可。
tidyverse 风格实现(适合日常数据处理场景)
如果你使用dplyr包做数据处理,可以用管道操作更清晰地完成逻辑:
library(dplyr) result <- my.data %>% filter(!is.na(quant)) %>% # 保留quant非NA的行 pull(names) # 提取names列为向量
内容的提问来源于stack exchange,提问作者NotARobot
相关产品推荐
相关产品推荐

