2012-11-30 61 views
0

我需要從R中的數據幀中丟棄幾個因子級別。使用此question中提供的解決方案,我可以刪除其中的一個,但是... 是一次可以刪除幾個因子水平?在R中的數據幀中丟失幾個因子級別

我想出了這樣一段代碼,子集多次,除去必要因素...

dino <- read.csv('/home/maxim/onset.csv', header=TRUE) 
dino <- subset(dino, onset != "QT") 
dino <- subset(dino, onset != "") 
table(droplevels(dino)$onset) 

它工作正常,在我的情況,但如果有誰知道一個更直接的方式,我想知道去做吧。 (順便說一句,我不是R中非常profficient ...)

+7

'子集(迪諾,!%%c(「QT」,「」))'是要走的路線 –

+3

@peixe在某些情況下,'subset'評估它的參數可能會導致意想不到的結果。如果你讀了'?subset',你會注意到最後的警告只是交互地使用這個函數,也就是說,當你在R shell中工作時。如果你正在編寫的內容將成爲腳本的一部分,最好遵循標準的'['notation:'dino [!]迪諾$發病%%c('QT',''),]' –

+0

哇,我把我的帽子給你。這是完美的。 你可以發佈這個問題的解決方案嗎? :) 謝謝! – peixe

回答

0

解決方案apported通過@Joris Meys:

subset(dino, ! onset %in% c("QT","")) 
+0

我會選擇這個答案,因爲它是第一個,也是我最終使用的答案。參見上面的討論主題。 – peixe

2

解決方案通過@Matthew Plourde apported:

dino[! dino$onset %in% c('QT', ''), ]