我有一个数据框如下:
[,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吗?谢谢!
3 回答
在基地R你可以做类似的事情:
使用
dplyr
略有不同:列位置:
我不确定有什么问题,除非它对你来说太冗长,而你想要一种不命名列的方法 .
哪个产生: