通過要刪除的行的多個邏輯條件來子集數(shù)據(jù)幀我想通過指定哪些行not(!)保留在新數(shù)據(jù)幀中來對數(shù)據(jù)幀進(jìn)行子集化(過濾)。這是一個簡化的示例數(shù)據(jù)幀:datav1 v2 v3 v4a v d ca v d db n p gb d d h c k d c c r p gd v d xd v d ce v d be v d c例如,如果列v1的一行有“b”,“d”或“e”,我想擺脫那一行觀察,產(chǎn)生以下數(shù)據(jù)幀:v1 v2 v3 v4a v d ca v d dc k d c c r p g我一次成功地基于一個條件進(jìn)行子集化。例如,在這里我刪除v1包含“b”的行:sub.data <- data[data[ , 1] != "b", ]但是,我有很多這樣的條件,所以一次做一個是不可取的。我沒有成功完成以下任務(wù):sub.data <- data[data[ , 1] != c("b", "d", "e")要么sub.data <- subset(data, data[ , 1] != c("b", "d", "e"))我也試過了其他一些東西,比如!%in%,但似乎并不存在。有任何想法嗎?
3 回答

一只萌萌小番薯
TA貢獻(xiàn)1795條經(jīng)驗 獲得超7個贊
您還可以通過包含&
分隔語句來將事物分解為單獨的邏輯語句來實現(xiàn)此目的。
subset(my.df, my.df$v1 != "b" & my.df$v1 != "d" & my.df$v1 != "e")
這不是優(yōu)雅的,需要更多代碼,但對于較新的R用戶可能更具可讀性。正如上面的評論所指出的,subset
是一種“便利”功能,最適合在交互式工作時使用。
- 3 回答
- 0 關(guān)注
- 520 瀏覽
添加回答
舉報
0/150
提交
取消