R中如何select元素全为0的列?
How to select columns whose elements are all 0 in R?
我正在努力 select 所有元素都为 0 的列。这是一个简单的例子:
df <- data.frame(A=c(1,0,1,0),B=c(0,0,0,0),C=c(1,1,0,0),D=c(0,0,0,0))
df
A B C D
1 1 0 1 0
2 0 0 1 0
3 1 0 0 0
4 0 0 0 0
我想要 select B 和 D 列。我知道 dplyr::select
允许 select 按列名。但是如何根据它们的值 select 列?类似于 select(across(everything(),~.x==0))
。但是 across()
不能用在 select()
.
我们可以在 select
语句中使用 where
来查找总和为 0 的列。
library(dplyr)
df %>%
select(where(~sum(.) == 0))
或者您可以在基数 R 中使用 colSums
:
df[,colSums(df) == 0]
输出
B D
1 0 0
2 0 0
3 0 0
4 0 0
我正在努力 select 所有元素都为 0 的列。这是一个简单的例子:
df <- data.frame(A=c(1,0,1,0),B=c(0,0,0,0),C=c(1,1,0,0),D=c(0,0,0,0))
df
A B C D
1 1 0 1 0
2 0 0 1 0
3 1 0 0 0
4 0 0 0 0
我想要 select B 和 D 列。我知道 dplyr::select
允许 select 按列名。但是如何根据它们的值 select 列?类似于 select(across(everything(),~.x==0))
。但是 across()
不能用在 select()
.
我们可以在 select
语句中使用 where
来查找总和为 0 的列。
library(dplyr)
df %>%
select(where(~sum(.) == 0))
或者您可以在基数 R 中使用 colSums
:
df[,colSums(df) == 0]
输出
B D
1 0 0
2 0 0
3 0 0
4 0 0