r - 对于每个大组,选择 R 中可用的最佳子组

标签 r dataframe dplyr

我有一个数据集,其中有一些大组和子组(小组)。

我想为每个大组选择小组 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/

相关文章:

r - "climatol"包中rosavent的使用

r - x 轴上的 ggplot 月度日期刻度使用天作为单位

r - 使用 RDCOMClient 如何使用 advancedsearch() 函数在不同邮箱中进行搜索?

python - 如何在 Jupyter notebook 中显示欧洲 map ?

python - 如何编辑 matplotlib 条形图中 x 位置的默认索引值

r - 突变多个/连续的列(使用dplyr或base R)

r - R中这个函数的逻辑有什么问题?

python - 快速将 Pandas 系列标签转换为相应列的间接值系列

重新排序对称小标题

r - 使用数值条件对一系列列进行编码