寻找tidyverse中替代which()括号匹配的简洁取值方法
根据数据框列值匹配返回对应列的单个值
示例数据
df <- data.frame(x = rep(c("a", "b"),3), y = 1:6) print(df) # x y # 1 a 1 # 2 b 2 # 3 a 3 # 4 b 4 # 5 a 5 # 6 b 6
简化实现方法
Base R 简化写法
- 直接省略
which(),利用逻辑向量完成索引:df$x[df$y == 4] # [1] "b" - 用
with()减少重复输入df$,写法更简洁:with(df, x[y == 4]) # [1] "b"
Tidyverse (dplyr) 方法
用filter()筛选目标行,再通过pull()提取指定列:
library(dplyr) df %>% filter(y == 4) %>% pull(x) # [1] "b"
内容的提问来源于stack exchange,提问作者quepur
相关产品推荐
相关产品推荐

