r - 过滤具有 X 列且值大于 Y 的行
问题描述
我想过滤我的数据框以仅保留至少 2 列中值 > 5.5 的行。
我知道这个dplyr
函数filter(df,columnX>5.5)
,但它一次只允许取一列或几列。
东风:
structure(list(tumor = c(5.69857588735462, 5.14269655336569,
15.5965461799242, 5.28949625542, 6.43237599127586, 5.21673785968077
), tumor = c(5.79729396999926, 5.10961482429376, 15.8339301491681,
5.47321124082556, 6.0624492087845, 5.21740033243091), tumor = c(5.67184459054712,
5.024088977993, 16.1659194908984, 5.20119456848026, 6.67441109230211,
5.15023836750153), tumor = c(5.9616857066853, 5.23907758025991,
15.2742729676712, 5.31827944648937, 6.47526325782951, 5.15926657492595
), tumor = c(5.75116456249489, 5.03195808382708, 16.0180448251626,
5.36575242301428, 6.85603803194346, 5.18022831262029)), class = "data.frame", row.names = c("A_33_P3390097",
"NM_178466", "GE_BrightCorner", "ENST00000396843", "NM_001166137",
"DarkCorner"))
解决方案
使用基础 R 的一种简单快捷的方法rowSums
,我们在其中过滤超过一列中值大于 5.5 的那些行。
df[rowSums(df > 5.5) > 1, ]
# tumor tumor tumor tumor tumor
#A_33_P3390097 5.698576 5.797294 5.671845 5.961686 5.751165
#GE_BrightCorner 15.596546 15.833930 16.165919 15.274273 16.018045
#NM_001166137 6.432376 6.062449 6.674411 6.475263 6.856038
推荐阅读
- javascript - 在javascript中将sort和uniq函数合并为1
- python - 将列表值转换为数据框
- pandas - 对均值 pandas 的 T 检验
- javascript - 在 Angular 中的单选按钮上选择所有实现
- javascript - 为几个输入 Vue.js 计算出不同的结果
- python - 如何在不更改主分支的情况下更改本地 git 存储库的功能分支?
- scala - java.lang.NoSuchMethodError:com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper
- php - 参数中的 URL 重定向到 403?
- python - 如何在python中为不同的条形图组赋予不同的颜色?
- java - 为什么从其他类调用 JPanel 会给出 NullPointerException 错误?