【发布时间】:2018-08-08 19:00:57
【问题描述】:
我有一个数据框如下:
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] A 4 NA NA 1.55 4 NA
[2,] B NA NA 4 0.56 NA NA
[3,] C 4 4 NA 0.62 4 4
[4,] D NA NA NA 1.61 4 NA
[5,] E 4 NA NA 0.5 4 NA
过滤后我想得到的输出是:
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[3,] C 4 4 NA 0.62 4 4
[5,] E 4 NA NA 0.5 4 NA
我希望在第 2 到第 4 列中至少有一个等于 4 的值,在第 6 到第 7 列中至少有一个等于 4 的值。
我正在考虑使用以下命令,但我不确定如何以正确的方式使用它,从而为我提供正确的输出。
命令如下:
new.df <- df %>%
dplyr::filter_at((vars(c(2:4)), any_vars(. == 4) & vars(c(6:7)), any_vars(. == 4))
您知道如何获得所需的 new.df 吗? 谢谢!
【问题讨论】:
-
由于您格式化示例数据框的方式,无法将其复制到 R 中使用。这使我们很难尝试解决您的问题。请使用
dput制作一个版本,我们可以直接放入R 中。查看How to make a great R reproducible example 以了解更多信息
标签: r filter dplyr multiple-columns logical-operators