如何知道R中哪些列只包含零?

6za6bjd0  于 2023-03-05  发布在  其他
关注(0)|答案(2)|浏览(125)

我当前有一个数据框,其中的列包含许多零,但也有一些列包含正值。

如何知道哪些列只包含零?

kiayqfof

kiayqfof1#

这将为您提供只有0的列号。

which(colSums(df==0) == nrow(df))
#b 
#2

另一种写法是-

which(colSums(df != 0) == 0)

或者,找出有多少列包含零(TRUE)或不包含零(FALSE)

table(colSums(df != 0) == 0)

数据

df <- data.frame(a = c(1, 2, 3, 0), b = 0, c = c(0, 0, 0, 1))
31moq8wy

31moq8wy2#

我们可以在dplyr中使用select

library(dplyr)
df %>% 
     select(where(~ all(. == 0)))
  • 输出
b
1 0
2 0
3 0
4 0

要执行相反的操作,即删除这些列

df %>%
    select(where(~ any(. != 0)))

数据

df <- data.frame(a = c(1, 2, 3, 0), b = 0, c = c(0, 0, 0, 1))

相关问题