r - 用条件对大数据框进行子集化
问题描述
我有以下数据集:
ID s1 s2 s3
A 0.6 1 0.3
B 3 0.4 0.4
C 3 2 1
D 0 0.3 0.2
E 3 2 0.1
我想保留值 >=0.5 的行至少 3 个样本中的两个
因此,新的数据框将是:
ID s1 s2 s3
A 0.6 1 0.3
C 3 2 1
E 3 2 0.1
提前致谢
解决方案
你可以做
df[rowSums(df[-1] > 0.5) >= 2, ]
# ID s1 s2 s3
#1 A 0.6 1 0.3
#3 C 3.0 2 1.0
#5 E 3.0 2 0.1
我们创建一个逻辑矩阵df[-1] > 0.5
并检查每行是否至少有两个值TRUE
。
数据
df <- read.table(text="ID s1 s2 s3
A 0.6 1 0.3
B 3 0.4 0.4
C 3 2 1
D 0 0.3 0.2
E 3 2 0.1", header = TRUE, stringsAsFactor = FALSE)
推荐阅读
- user-interface - 在单独的网站上设立帮助中心有什么好处?
- python - 使用一对一关系 Django Rest API 更新 UserDetail 表中的用户详细信息
- email - Redmine 问题 | 错误 - :MailHandler:验证失败:开始时间不能为空
- spring-boot - Spring Boot 连接到 IBM MQ Cloud
- html - 我无法在 Angular/html 脚本中打印对象的值
- c# - 如何区分 Cosmos DB 更改源中的插入和更新
- optimization - LLVM IR(中间表示)中的“inttoptr”指令是否无效?
- discord - 如何向服务器的所有成员发送直接消息?
- matrix-multiplication - Matrix 矩阵产品操作 OpenMDAO
- node.js - 如何从 Scival Api 检索作者指标?