r - 根据 dplyr 中的列在组之间保留公共行
问题描述
我的数据框看起来像这样
df <- data.frame(gene=c("A","B","C","A","B","D"),
origin=rep(c("old","new"),each=3),
value=sample(rnorm(10,2),6))
gene origin value
1 A old 1.5566908
2 B old 1.3000358
3 C old 0.7668213
4 A new 2.5274712
5 B new 2.2434525
6 D new 2.0758326
我想找到两个不同的起源组(旧的和新的)之间的共同基因
我希望我的数据看起来像这样
gene origin value
1 A old 1.5566908
2 B old 1.3000358
4 A new 2.5274712
5 B new 2.2434525
任何帮助表示赞赏。理想情况下,我想在使用多列的组中找到共同的行
解决方案
使用ave
+的基本 R 选项subset
subset(
df,
as.logical(ave(origin,gene,FUN = function(x) all(c("old","new")%in% x)))
)
给
gene origin value
1 A old 0.5994593
2 B old 4.0449345
4 A new 3.2478612
5 B new 0.2673525
推荐阅读
- firebase - Firebase 云函数 - 在 OnUpdate 云触发器中更新不同的对象
- asp.net-mvc - js文件加载时出现System.OutOfMemoryException错误
- google-app-engine - 找不到 Google AppEngine 日志到标准输出
- matlab - 如何处理 simulink 中的“端口宽度或尺寸”错误?
- python - Sklearn 模型无法接受 TFIDF 向量输入
- html - 如何在导航栏上设置“固定位置”而不改变我的页面布局?
- c# - CEFsharp 中未显示 HTML 工具提示
- angular - 如何在ionic4中设置启动画面
- java - 输出格式为“mm-dd-yyyy”的 Android DatePicker 和 DateFormat
- testing - 如何在 Ranorex 中从数据库中设置用户名和密码?