的多個邏輯條件我想通過指定不(!
),以保持在新的數據幀的行到子集(過濾器)一數據幀。這裏是一個簡化的樣本數據幀:子集數據幀按行以除去
data
v1 v2 v3 v4
a v d c
a v d d
b n p g
b d d h
c k d c
c r p g
d v d x
d v d c
e v d b
e v d c
例如,如果列V1的行有一個「B」,「d」或「E」,我想擺脫觀測該行,生產以下數據幀:
v1 v2 v3 v4
a v d c
a v d d
c k d c
c r p g
我一次都成功地基於一個條件進行子集化。例如,在這裏我刪除其中V1包含一個「B」行:
sub.data <- data[data[ , 1] != "b", ]
不過,我有很多很多這樣的條件,所以做一次一個是不可取的。我都沒有成功下列要求:
sub.data <- data[data[ , 1] != c("b", "d", "e")
或
sub.data <- subset(data, data[ , 1] != c("b", "d", "e"))
我已經嘗試了一些其他的東西,以及像!%in%
,但似乎並不存在。 有什麼建議嗎?
不錯,簡單,謝謝。我不確定我更喜歡哪種解決方案,這是安德里提供的解決方案。它們既簡單又有效。所有這三種解決方案都適用於我,而且我從未使用過'which()'。所以,很高興能夠介紹這個功能。 – Jota 2011-06-05 17:25:53
如果它可以幫助你決定是使用'subset'還是''',看看'subset'的幫助中的警告:*「這是一個交互式使用的方便函數。對於編程,最好使用標準的子集函數,特別是參數子集的非標準評估可能會有意想不到的後果。「* – Andrie 2011-06-06 12:45:11
@Andrie感謝您加入澄清。 – chl 2011-06-06 12:55:42