数据帧列中的R计数值大于零

时间:2012-10-23 13:51:05

标签: r count dataframe

我有数据框:

mat=data.frame(A=c(12,10,0,14,0,60),B=c(0,0,0,0,13,65))

问题是:如何过滤掉过量零的列[例如> 50%]? 例如。必须删除B列。

使用nrow(mat)* 0.5设置阈值会很好,然后删除零计数值超过该阈值的列。

1 个答案:

答案 0 :(得分:5)

这是一种方式:

> mat <- data.frame(A=c(12,10,0,14,0,60),B=c(0,0,0,0,13,65))
> 
> keep <- (colSums(mat > 0) / nrow(mat)) > 0.5
> keep
    A     B 
 TRUE FALSE 
> 
> mat[, keep, drop = FALSE]
   A
1 12
2 10
3  0
4 14
5  0
6 60