首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R:如何通过data.frame过滤以删除数据条目

R:如何通过data.frame过滤以删除数据条目
EN

Stack Overflow用户
提问于 2013-07-02 09:45:19
回答 2查看 107关注 0票数 0

我有一个data.frame,它的开头如下:

代码语言:javascript
复制
        gene            snp     pval   best_snp    best_pval
1  ENSG00000007341  rs2932538  5.6007 rs17030613   10.0542
2  ENSG00000064419 rs10488631  7.7461  rs4728142   24.6101
3  ENSG00000064419 rs12531711  7.7449  rs4728142   24.6101
4  ENSG00000064419 rs12537284  4.5544  rs4728142   24.6101
5  ENSG00000064666  rs3764650 12.3401  rs3752246    5.4001
6  ENSG00000072682 rs10479002  5.0141 rs12521868   21.1550

如图所示,在2-4个株系中,同样的基因被重复。对于重复的基因,我只想保留best_snpbest_pval值,因为它是基因first出现的first行,所以是第2行;对于第3和第4行,我想删除best_snpbest_pval值,因为它与上面的相同。

如果一个基因不被重复,那就保持原样吧。

请记住,这个表比显示的要大得多,而且基因在随机的地方重复。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-02 10:12:53

如果df是您的data.frame:

代码语言:javascript
复制
library(plyr)
ddply(df,.(gene),function(x) {x[-1,c("best_snp","best_pval")] <- NA
return(x)})
票数 1
EN

Stack Overflow用户

发布于 2013-07-02 09:49:41

我猜是桌子,你是说data.frame。如果是这样的话,如果z是您的data.frame:

代码语言:javascript
复制
z[match(unique(z$Best_SNP), z$Best_SNP),]

基于Arun的答案和链接到您的另一个问题。听起来,您实际上想保留行,但是用一些东西(比如NA?)替换重复的行,这可以用以下方法来完成:

代码语言:javascript
复制
z2 <- z
z2[duplicated(z2$Best_SNP),c("Best_SNP","Best_Pval")] <- NA
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17422345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档