r - R dplyr 在多列上过滤字符串条件
问题描述
我有一个df,例如
df <-read.table(text="
v1 v2 v3 v4 v5
1 A B X C
2 A B C X
3 A C C C
4 B D V A
5 B Z Z D", header=T)
如果变量有“X”,我如何过滤变量 v2 到 v5。我已经看到了一些使用过滤器的示例,但这些示例似乎仅适用于数字条件。
filter_at(vars(contains("prefix")), all_vars(.>5))
并且将 >5 替换为“X”不起作用
解决方案
使用dplyr
1.0.4,我们可以使用if_any
library(dplyr)
df %>%
filter(if_any(v2:v5, ~ . == 'X'))
# v1 v2 v3 v4 v5
#1 1 A B X C
#2 2 A B C X
推荐阅读
- php - 木材。通过点击类别显示帖子
- javascript - 运行不和谐机器人后我无法输入终端
- javascript - 我的手机正则表达式中的语法错误 (Internet Explorer 11)
- python - TIFF 文件具有奇怪的元信息,特别是图像大小
- javascript - map 函数返回 1 个布尔值,而不是布尔值数组
- ffmpeg - 如何在 ffmpeg 中使用过渡遮罩
- reactjs - useState 函数在功能组件中不起作用
- c# - log4net 日志在错误的文件中生成
- javascript - 将 json 转换为地图格式以实现角树
- three.js - 三JS编辑器中使用场景的用户数据