从仅包含零的数据框中删除列

时间:2018-03-08 20:10:52

标签: r

我试图重新创建一个包含数百列的数据框(DC5_prod),但很多列没有任何除零以外的值。

数据框中的第一列是文本,其余的是数字。有没有办法忽略第一列,同时消除完全由零组成的其余列?

DC5_Prod
 a   b c d e f   
1 AK 0 0 0 0 1 
2 JI 0 0 0 0 0 

上面是它目前的表现形式的片段,并希望输出:

DC5_Prod
 a    f   
1 AK  1 
2 JI  0 

当我尝试在网站上使用针对类似问题发布的解决方案时:

DC5_prod[, colSums(DC5_prod != 0) > 0]

基本上只返回第一列而不删除任何。

1 个答案:

答案 0 :(得分:0)

尝试这种R基础方法

> ind <- sapply(DC5_Prod, function(x) sum(x==0)) != nrow(DC5_Prod)
> DC5_Prod[,ind]
   a f
1 AK 1
2 JI 0