根據(jù)某一列中的重復值贡定,刪除相應行缓待,最常出現(xiàn)在多組學數(shù)據(jù)的處理當中渠牲。在處理轉錄組數(shù)據(jù)時,通常多個芯片對應一個基因瘫镇,那么注釋之后就會遇到一個棘手的問題:
gene name中有重復答姥,無法將gene name轉變?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ù)的形式越败,當然硼瓣,還有很多其他的方式可以篩選,小伙伴們可以分享自己的處理方式噪猾,一起探討哦