根據(jù)列中重復值刪除行

根據(jù)某一列中的重復值,刪除相應行,最常出現(xiàn)在多組學數(shù)據(jù)的處理當中。在處理轉(zhuǎn)錄組數(shù)據(jù)時,通常多個芯片對應一個基因,那么注釋之后就會遇到一個棘手的問題:

gene name中有重復,無法將gene name轉(zhuǎn)變?yōu)樾忻?/p>

這里總結了常見的處理方式,供大家選擇:

1 直接去重復
2 取最大值后去重
3 取平均值后去重

library(dplyr)
df<- data.frame(id = c(1, 2, 2, 3, 3,3,4, 5, 5),
                gender = c(3,4,5,NA,3,2,4,2,3),
                variant = c(1,5,2,6,3,7,2,NA,2))

##方法一
t1 <- df %>% distinct(id, .keep_all = TRUE)

##方法二
t2 <- df %>% group_by(id) %>% summarise_all(max)

##方法三
library(limma)
t3 <- avereps(df,df$id) %>% as.data.frame()

原始隊列

方法一 直接去重

可以看到,直接去重使用了dplyr包中的distinct函數(shù),函數(shù)保留了重復的首行,后面的重復行直接刪除


image.png

方法二 取最大值后去重

這里使用的還是dplyr包中的函數(shù),group_by和summarise_all,取重復行里面的最大值后,去掉后續(xù)的重復行。但是,當重復值中有缺失值的時候,保留的時缺失值NA而不是最大值

image.png

方法三 取平均值后去重

這里使用的是limma包里面的avereps函數(shù),這里就不存在缺失值了,但是limma文檔里提示,avereps函數(shù)只能用log2之后的標準數(shù)據(jù)

image.png

最后

如何選擇,我覺著吧,需要看數(shù)據(jù)的形式,當然,還有很多其他的方式可以篩選,小伙伴們可以分享自己的處理方式,一起探討哦

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容