我有一个数据集,其中包含一些大组和子组(小组)。
我想为每个大组选择小组1。但是,如果大组中不存在小组1,请选择子组2。下面的示例在此处停止,但理想情况下,它将继续工作,因此,如果未找到子组2,请选择子组3。以此类推。在示例中,我使用数字,但我的重点是在因子水平上做到这一点。
dplyr中的因素是否可能?假设因子水平按重要性排序?
这是我的示例数据:
set.seed(123)
big_group = rep(1:3, each = 6)
small_group = c(sample(1:2, size = 6, replace = TRUE),
rep(1, each = 6),
rep(2, each = 6)) %>%
as.factor()
d = data.frame(big_group,
small_group,
value = runif(n = 3 * 6))
理想的输出是
big_group small_group values
1 1 0.52810549
2 1 0.67757064
3 2 0.32792072
最佳答案
结合@akrun和@KarolisKoncevičius的答案,您也可以这样做:
d %>%
group_by(big_group) %>%
slice(which.min(small_group))
#> # A tibble: 3 x 3
#> # Groups: big_group [3]
#> big_group small_group value
#> <int> <fct> <dbl>
#> 1 1 1 0.528
#> 2 2 1 0.678
#> 3 3 2 0.328
关于r - 为每个大组选择R中可用的最佳子组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49192724/