我有一個具有〜4000行基因表達式的數據集。如何刪除在R的所有列中具有相同值的行
DF<-read.table("Sample_DF.txt",header=T)
head(DF, 4)
# Gene_Symbol X.U1. X.T1. X.U2. X.T2.
# 1 M1AP 0.0440509 0.1164950 0.0574035 0.0000000
# 2 DRD4 0.0440114 0.0387834 0.0512446 0.0497801
# 3 PCA3 0.0439278 0.0258183 0.0000000 0.0329761
# 4 FAM153B 0.0439073 0.0409539 0.0658340 0.3767400
tail(DF, 4)
# Gene_Symbol X.U1. X.T1. X.U2. X.T2.
# 3992 LINC00353 0 0 0 0
# 3993 LINC00359 0 0 0 0
# 3994 LINC00366 0 0 0 0
# 3995 LINC00379 0 0 0 0
現在,我想刪除所有列中包含0的所有行。 我已經通過這裏所有類似的查詢,並在其他網站的搜索和使用的代碼:
DF_filtered <- DF[!apply(DF[,c(2:5)],1,function(z) all(z==0)),]
或
DF_filtered <- DF[apply(DF[,c(2:5)],1,function(z) all(z!=0)),]
或
DF_filtered <- DF[apply(DF[,c(2:5)],1,function(z) any(z!=0)),].
然而,沒有工作,沒有線正在從原始數據集中刪除。有人可以幫我解決這個問題。
嘗試在read.table(na.strings =「0」)中讀取設置。它會將數據幀中的所有0都轉換爲NAs,然後你可以使用'na.omit(DF)' – Nate
作爲將來的參考,你應該發佈一個'dput(sample_DF)',這樣每個有幫助的人都可以確保解決方案適用於您的具體案例 – Nate
我與@NathanDay就此事達成了共識,但是如果您已經堅持使用加載的數據,我會使用'''df [!Reduce('&',lapply(df [-1],'==',0)),]''' –