首页 > 解决方案 > 如何以 colSums 作为条件选择 R 中的列?

问题描述

我试图找到常见的问题,但任何一个都是这样的。

我正在尝试使用 colSums 过滤我的数据表。这意味着如果 colSums 给出了一定的数量(假设低于 5000),我想包含或排除这个特定的列,并且我想用循环重复此操作或将其应用于整个数据表。基本上这不应该那么难,但我不确定我做错了什么,也许有人可以从这里提供帮助。

下面是我的数据和我的代码的preperesation。我使用 dput 函数来表示数据。

我尝试了许多不同的代码,但没有一个有效。我认为这是最接近的,但是当我使用下面的代码行时,它给了我这种类型的警告消息:“错误:需要一个单边公式、函数或函数名称。”

我一直在使用 dplyr 包,但其他的应该是基本功能。

> dput(data999[1:2, ])
KER000_349094 = c(0.1806, 
    0.1806), KER000_349085 = c(0.1832, 0.1832), KER000_351771 = c(0.1858, 
    0.1858), KER000_60103549 = c(0.1034, 0.1034), KER000_391452 = c(0.0016, 
    0.0016), KER000_345696 = c(0.1718, 0.1718), KER000_342793 = c(0.189230769230769, 
    0.189230769230769), KER000_345615 = c(0.0165384615384615, 
    0.0165384615384615), KER000_344065 = c(0.0592307692307692, 
    0.0592307692307692), KER000_353687 = c(0.188076923076923, 
    0.188076923076923), KER000_340589 = c(2.44, 2.44), KER000_346489 = c(0, 
    0), KER000_348357 = c(0.16, 0.16), KER000_363845 = c(3.135, 
    3.135), KER000_60029018 = c(0.115, 0.115), KER000_341255 = c(0, 
    0)), row.names = 1:2, class = "data.frame")

jeejee = apply(data999, 2, function(x) select_if(colSums(x <= 5000)))

标签: rselectmultiple-columns

解决方案


复制我的评论,因为它似乎是答案。

data999[,colSums(data999)<=5000]

选择总和 <= 5000 的所有列。


推荐阅读