2017-05-17 17 views
1

遺漏值無信息欄我有一個大的數據集,看起來像這樣:如何刪除有和沒有在數據幀

M1 = c("A", "A", "A") 
M2 = c("C", "G", "C") 
M3 = c("T", "", "T") 
M4 = c("G", "G", "G/C") 
M5 = c("T", "T/C", "") 
mydata = data.frame(M1, M2, M3, M4, M5) 
mydata 

我想要做的是刪除具有相同的字符每一行中列如M1和M3,它們也有一個缺失值。 我設法刪除了我的數據集中的「M1」列,命令爲「drop_noninformative_columns(x)」,但是很難去除其中缺少值的「M3」列而不刪除所有缺失值的列。

如果有人能給我一些很棒的想法!

謝謝!

+0

「NA」是不是在嘗試R.'NA'缺少值或'NA_character_'。之後,可以應用於每列的長度(唯一(na.omit(x)))== 1L',如http://stackoverflow.com/a/2269272/所示。 – Frank

+0

我的不好,我的意思是「不適用」或「」,我無法在兩種情況下進行管理 – Sumitt

回答

0

正如@Frank所暗示的那樣,您可以使用uniqueapply來查找哪些列沒有信息值。在你的情況下,你需要首先將所有空值和任何硬編碼的「NA」值轉換爲NA。

mydata[mydata == ""] <- NA 
mydata[mydata == "NA"] <- NA 

然後你可以用它來過濾原始數據幀,並只保留有不止一個獨特的價值列:

mydata2 <- mydata[, apply(mydata, 2,function(x) length(unique(na.omit(x)))) > 1] 
+0

由於你們兩個都是我所需要的,我仍然需要手動編輯幾列,處理它更容易! – Sumitt

+0

@Sumitt如果有幫助請接受答案,謝謝! –