r - R:如果满足条件,则从 data.frame 中删除列
问题描述
我有一个大约有一个 data.frame。20,000 列。从这个 data.frame 中,我想删除跟随向量值为 1 的列。
u.snp <- apply(an[25:19505], 2, mean)
我确信必须有一个直接的方法来实现这一点,但现在看不到它。任何提示将不胜感激。谢谢。
更新:感谢您的帮助。现在我尝试了以下方法:
cm <- colMeans(an.mdr[25:19505])
tail(sort(cm), n=40)
使用 tail 函数,我看到 an.mdr 的 19481 列中有 22 列的均值 = 1。接下来,我使用建议的代码删除这些列。
an.mdr.s <- an.mdr
an.mdr.s[colMeans(an.mdr.s[25:19505])==1] <- NULL
正如预期的那样,an.mdr.s 比 an.mdr 少 22 列。但是,当我计算除前 24 列之外的所有列的平均值时,我在 an.mdr.s 中再次有 22 列,列平均值 = 1。
cmm <- colMeans(an.mdr.s[25:19483])
tail(sort(cmm), n=40)
老实说,我现在看不到这里发生了什么。
解决方案
这应该很容易使用以下命令完成:
df[colMeans(df)==1] <- NULL
推荐阅读
- xaml - UWP:如何将视图传递给 InAppNotifications 控件?
- javascript - 为什么有 CSS 顶部偏移量,我如何删除/说明它?
- reactjs - Storybook + formik,控件不显示
- unicode - 尝试使用 micropython 在树莓 pico 的 SERLCD 液晶显示器上显示“f 度”
- python - DJANGO:类型错误“需要一个整数”并且类型错误“布尔”对象不可调用
- html - 半复杂(我猜)
- 列表功能问题/查询
- ios - 使用拖放附件时调用方法附件ButtonTappedForRowWith
- visual-studio - 将 GitHub 上的 Visual Studio 项目/解决方案转换为 CMake 项目?
- javascript - 如何检测在云功能中创建的新 Firebase 用户?
- macos - Shell 提示符在 MacOs Catalina 中保留旧的本地主机名