【发布时间】:2018-07-22 17:41:41
【问题描述】:
我有一个大约有一个 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)
老实说,我现在看不到这里发生了什么。
【问题讨论】:
-
您想删除所有均值为 1 的列。对吧?
-
是的,正是……
-
如果您认为某个答案解决了问题,请单击绿色复选标记将其标记为“已接受”。这有助于将注意力集中在仍然没有答案的旧 SO。
-
@user102546 不知道为什么您在问题中提到了
an[25:19505]。如果您想删除任何具有1平均值的列,那么最好稍微修改您的问题,使其与答案匹配。谢谢。
标签: r data-management