r - 根据 dplyr R 中的多个条件删除组
问题描述
我有一个看起来像这样的数据
gene=c("A","A","A","A","B","B","B","B")
frequency=c(1,1,0.8,0.6,0.3,0.2,1,1)
time=c(1,2,3,4,1,2,3,4)
df <- data.frame(gene,frequency,time)
gene frequency time
1 A 1.0 1
2 A 1.0 2
3 A 0.8 3
4 A 0.6 4
5 B 0.3 1
6 B 0.2 2
7 B 1.0 3
8 B 1.0 4
我想删除每个基因组,在这种情况下是 A 或 B 当他们有
frequency > 0.9
在time==1
这种情况下,我想删除 A 和我的数据看起来像这样
gene frequency time
1 B 0.3 1
2 B 0.2 2
3 B 1.0 3
4 B 1.0 4
任何提示或帮助表示赞赏
解决方案
我们可以使用subset
from,base R
即创建一个具有多个表达式的逻辑向量,提取与之对应的“基因”,用于%in%
创建一个逻辑向量,取反(!
)返回不存在的基因。或者也可以更改>
为<=
并删除!
subset(df, !gene %in% gene[frequency > 0.9 & time == 1])
-输出
gene frequency time
5 B 0.3 1
6 B 0.2 2
7 B 1.0 3
8 B 1.0 4
推荐阅读
- reactjs - 反应路由更改后如何重新安装组件
- ruby-on-rails - 如何使用 rubyzip gem 压缩列表临时文件
- php - 如何测试阵列控制台输入
- django - 在 Django PostgreSQL 中索引 JSONField
- ruby-on-rails - 无法显示用户名
- firebase - 仅允许具有特定自定义声明的用户调用 Firebase 函数
- javascript - 在buttonclick上将几个模板加载到django中的基本模板中
- css - flexbox:如果图像更高,则居中对齐,如果文本更高,则 flex-start
- ios - 如何检查哪个分发证书签署了 .ipa?
- c++ - Qt 连接何时断开