如何使用dplyr::filter筛选DataFrame:保留LA全部行且仅保留NY中年龄大于20的行?
使用dplyr::filter实现自定义行筛选
当然可以用dplyr::filter()轻松实现你的需求!咱们直接把两个筛选条件用逻辑运算符组合起来就好,逻辑很直观:
- 要么是
city等于"LA"的所有行 - 要么是
city等于"NY"且age大于20的行
完整代码示例
# 加载必要的包 library(dplyr) library(tibble) # 构建你的DataFrame x <- tibble(city = c("LA","LA","LA","NY","NY","NY"), age = c(10,20,30,15,25,35)) # 执行筛选操作 filtered_x <- x %>% filter(city == "LA" | (city == "NY" & age > 20)) # 查看筛选结果 filtered_x
结果说明
运行代码后会得到如下输出,完全匹配你的需求:
# A tibble: 5 × 2 city age <chr> <dbl> 1 LA 10 2 LA 20 3 LA 30 4 NY 25 5 NY 35
这里的小技巧是用括号把NY的两个条件括起来,确保逻辑运算优先级正确——先判断city == "NY" & age > 20这个组合条件,再和city == "LA"做逻辑或运算,避免出现逻辑错误。
内容的提问来源于stack exchange,提问作者uow
相关产品推荐
相关产品推荐

