R语言新手:已知某列指定数值,如何提取对应行另一列的目标值
实现代码
以下代码默认数据集已导入R环境,变量名为
df
基础R语法实现
直接通过逻辑索引筛选行、指定列获取结果:
# 输出为数据框格式 df[df$`Purchase amount` == 682.23, "DATE"] # 若需要输出为向量格式,添加drop参数 df[df$`Purchase amount` == 682.23, "DATE", drop = TRUE]
tidyverse(dplyr)语法实现
适合习惯管道操作的场景:
# 加载dplyr包(如果已安装tidyverse可直接加载tidyverse) library(dplyr) # 输出为数据框格式 df %>% filter(`Purchase amount` == 682.23) %>% select(DATE) # 若需要输出为向量格式,用pull替代select df %>% filter(`Purchase amount` == 682.23) %>% pull(DATE)
注意事项
- 列名
Purchase amount包含空格,引用时必须用反引号包裹,否则会触发语法错误 - 浮点数全等匹配可能存在精度误差,建议改用近似判断:
基础R写法:df[abs(df$Purchase amount- 682.23) < 1e-6, "DATE"]
dplyr写法:filter(near(Purchase amount, 682.23))
内容的提问来源于stack exchange,提问作者Actros M
相关产品推荐
相关产品推荐

