我想将数据帧除以非零值的数量,比方说我要删除超过 n 零的所有列。我知道如何删除所有零和列:
df[, colSums(df) != 0]
但是如何为零元素的任何阈值执行此操作?
答案 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))