r - 如何在 R 中删除值超过 90% 为“0”的列
问题描述
我有分类变量,我将其转换为虚拟变量并获得超过 2381 个变量。我不需要那么多变量进行分析(比如回归或相关)。如果给定列中超过 90% 的总值是“0”,我想删除列。另外,除了 90% 的值是 '0' 之外,是否有一个很好的指标来删除列?帮助!
解决方案
这将为您提供一个data.frame
没有超过 90% 的元素的列0
:
df[sapply(df, function(x) mean(x == 0) <= 0.9)]
或者像马库斯建议的那样更优雅:
df[colMeans(df == 0) <= 0.9]
推荐阅读
- ios - React Native v0.61.5 获取 ITMS-90809:已弃用的 API 使用
- r - 日期轴上的点大小的线图 - R
- python - 如果在模拟中接收到消息,如何检查 CAPL?
- sql - 试图返回一个 select 语句,该语句显示两个表中的记录与第三个表中的记录匹配
- db2 - 原子复合语句在 Db2 中的工作方式不同
- javascript - 展示嵌入与周围文本的内联
- python - Python:按第二个元素排序
- excel - 如何在Excel中总结标准?
- javascript - 此加密概述中是否存在错误?
- stripe-payments - 使用真实数据测试 Stripe transfer API webhook