【问题标题】:Remove columns from data frame that only contain zeros [duplicate]从仅包含零的数据框中删除列[重复]
【发布时间】:2018-03-09 04:29:08
【问题描述】:

我正在尝试重新创建一个具有数百列的数据框 (DC5_prod),但其中许多列除了零之外没有任何值。

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

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

以上是它当前状态的一个 sn-p,并希望输出:

DC5_Prod
 a    f   
1 AK  1 
2 JI  0 

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

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

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

【问题讨论】:

  • 使用你原来的思路DC5_Prod[,-(which(colSums(DC5_Prod[2:ncol(DC5_Prod)]) == 0)+1)] 如果你的更多列有字符,那不是很优雅。

标签: r


【解决方案1】:

试试这个基于 R 的方法

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

【讨论】:

    猜你喜欢
    • 2019-06-19
    • 2014-02-05
    • 2021-08-21
    • 2014-10-01
    • 2018-01-30
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多