从符合非零值阈值的数据框中删除列

时间:2015-06-25 09:46:54

标签: r

我想将数据帧除以非零值的数量,比方说我要删除超过 n 零的所有列。我知道如何删除所有零和列:

df[, colSums(df) != 0]

但是如何为零元素的任何阈值执行此操作?

1 个答案:

答案 0 :(得分:2)

我们需要创建一个逻辑矩阵,然后执行colSums

 n <- 3
 df[colSums(df==0) <= n]

数据

 set.seed(22)
 df <- as.data.frame(matrix( sample(0:4, 5*20, replace=TRUE), ncol=5))