如果我有一个包含5列(A到E)和1000行的数据帧,则所有列都有大于0的各种数字,除了2列(D和E)只有零。如何评估每列,以便我只选择具有值的列?我想要一个包含列的新数据框(A B C)。在我的实际数据框中,我有一千列。我所知道的是dplyr select(dataframe,)
感谢。 Ĵ
答案 0 :(得分:2)
您可以删除全部为0或NA的列:
x <- x[,colSums(x,na.rm = TRUE) > 0]
答案 1 :(得分:1)
另一个选项是Filter
Filter(function(x) any(!is.na(x)&x!=0), df1)
或者
Filter(function(x) sum(x, na.rm=TRUE), df1)
或者@docendodiscimus提到
Filter(any, df1)
它将提供有关类型转换的友好警告。
df1 <- data.frame(Col1= c(NA, rep(0,5)), Col2= c(1:5, NA), Col3=0)