說我有一個tbl
這樣,通過var1
分組:如何按組排除行數?
var1 var2
A 2
A 3
A 0
B 0
B 2
B 1
C 0
C 0
C 0
,我想知道是否有獲得與var2
全零擺脫組的方式,例如在這組數據的組c
應被刪除,像這樣:
var1 var2
A 2
A 3
A 0
B 0
B 2
B 1
有沒有簡單的方法來使用dplyr?我想要一個只使用dplyr
和tidyr
中的函數的回答,由%>%
連接。
說我有一個tbl
這樣,通過var1
分組:如何按組排除行數?
var1 var2
A 2
A 3
A 0
B 0
B 2
B 1
C 0
C 0
C 0
,我想知道是否有獲得與var2
全零擺脫組的方式,例如在這組數據的組c
應被刪除,像這樣:
var1 var2
A 2
A 3
A 0
B 0
B 2
B 1
有沒有簡單的方法來使用dplyr?我想要一個只使用dplyr
和tidyr
中的函數的回答,由%>%
連接。
試着這麼做:
library('dplyr')
tbl %>%
group_by(var1) %>%
filter(!all(var2 == 0))
非常好!謝謝!但爲什麼不直接過濾?這樣你就不必用另一個'select'來刪除新列。 – trVoldemort
只是爲了詳細。如果你願意,你也可以直接過濾。 –
什麼
tbl %>%
group_by(var1) %>%
mutate(var3 = ifelse(mean(var2) == 0, 1, 0))
filter(var3 != 1)
這不會炒鍋。如果var2 = c(-1,1)? –
好點。將不得不用'abs()'來包裝它 –
tbl %>%
group_by(var1) %>%
filter(sum(var2)!= 0)
這是行不通的。再次,sum(c(-1,1))== 0 –
OP問題是:擺脫var2中全零的組。 –
因爲沒有人喜歡基礎R任何更多的,我就離開了答案評論:'DAT [用( dat,ave(var2!= 0L,var1,FUN = any)),]' – thelatemail