首页 > 解决方案 > 如何在 R 中删除值超过 90% 为“0”的列

问题描述

我有分类变量,我将其转换为虚拟变量并获得超过 2381 个变量。我不需要那么多变量进行分析(比如回归或相关)。如果给定列中超过 90% 的总值是“0”,我想删除列。另外,除了 90% 的值是 '0' 之外,是否有一个很好的指标来删除列?帮助!

标签: rif-statementlogicdummy-variable

解决方案


这将为您提供一个data.frame没有超过 90% 的元素的列0

df[sapply(df, function(x) mean(x == 0) <= 0.9)]

或者像马库斯建议的那样更优雅:

df[colMeans(df == 0) <= 0.9]

推荐阅读