如何按组消除行?
How do I eliminate rows by group?
假设我有一个像这样的 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))
怎么样
tbl %>%
group_by(var1) %>%
mutate(var3 = ifelse(mean(var2) == 0, 1, 0))
filter(var3 != 1)
tbl %>%
group_by(var1) %>%
filter(sum(var2)!= 0)
假设我有一个像这样的 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))
怎么样
tbl %>%
group_by(var1) %>%
mutate(var3 = ifelse(mean(var2) == 0, 1, 0))
filter(var3 != 1)
tbl %>%
group_by(var1) %>%
filter(sum(var2)!= 0)