我有一个关于数据排序的问题。在我的数据集中,有5个细胞簇。每个簇都有一个富集基因列表,作为单独的 Dataframe 。但是,有些基因在2个或更多簇中富集,我想删除这些基因。我该怎么做?
在下面的简化示例中,应删除名为“MYH6”、“MYOD”和“GAPDH”的行,因为它们位于2个或更多 Dataframe 中。
我试过list(),但不知道下一步该怎么做。unique()不起作用。
cluster1 <- data.frame(logFC = c("1", "0.5", "0.7","0.5"))
rownames(cluster1) <- c("MYH6","ACTA1","TNNT2","GAPDH")
cluster2 <- data.frame(logFC = c("1", "0.8", "0.6","1.2"))
rownames(cluster2) <- c("MYH6","MYOD","PECAM1","GAPDH")
cluster3 <- data.frame(logFC = c("2", "0.9", "1.5","0.7"))
rownames(cluster3) <- c("MYL7","MYOD","CD34","GAPDH")
先谢谢你。
4条答案
按热度按时间fjaof16o1#
1.查找名称为“cluster”的所有对象并将它们存储到列表中。
1.从每个聚类中提取行名称,取消列表,并查找重复的基因。
1.过滤掉每个簇上那些行名称与重复基因匹配的行。
1.如果要将
res.list
中的所有群集覆盖到全局环境w41d8nur2#
这里是一个解决方案过滤复制:
输出:
如果您只需要原始的三个 Dataframe ,就不要应用最后的
rbind
oxosxuxt3#
请尝试下面的代码,其中我更新了各个 Dataframe 以具有变量grp,因此对于
cluster1
,grp=1
是grp=1
,对于cluster2
,grp=2
是grp=2
,依此类推。然后,我们可以使用grp来分隔 Dataframe数据
创建于2023年1月19日,使用reprex v2.0.2
nhhxz33t4#
带Map和拆分的Tidyverse解决方案:
创建于2023年1月19日,使用reprex v2.0.2