筛选出不共享指定列的至少一个值的数据框中的分组观察。
我只想保留至少两个观测值具有相同年龄的组。
{{1}}
所以最终的data.frame应该只包含住户== 1, 并应如下所示:
id家庭年龄
1 1 19
2 1 19
3 1 45
答案 0 :(得分:1)
我们可以查看每个组的age
长度,并将其与unique(age)
的长度进行比较。如果length(age) > length(unique(age))
中至少有两个观察者具有年龄。
library(dplyr)
df %>%
group_by(household) %>%
filter(length(age) > length(unique(age)))
# id household age
# <dbl> <dbl> <dbl>
# 1 1 1 19
# 2 2 1 19
# 3 3 1 45
@ Dave2e指出了另一种dplyr
-y方式:
df %>%
group_by(household) %>%
filter(n() > n_distinct(age))
答案 1 :(得分:0)
尝试一下:
df <- data.frame(list(id = c(1,2,3,4,5,6),
household = c(1, 1, 1, 2, 2, 2),
age= c(19, 19, 45, 2,15,50)))
df %>%
filter(household == 1)
title_size = ObjectProperty('50dp')