首页 > 解决方案 > 在 R 中创建唯一的随机组 id

问题描述

我正在尝试在不使用 for 循环的情况下创建一个唯一的、随机分配(无替换)的组 ID。据我所知:

library(datasets)
library(dplyr)

data(iris)

iris <- iris  %>% group_by(Species) %>% mutate(id = cur_group_id())

这给了我每个 iris$Species 的组 id,但是,我希望组 id 从 c(1,2,3) 随机分配,而不是根据数据集的顺序分配。

创建它的任何帮助都会非常有帮助!我确信有办法用 dplyr 做到这一点,但我很难过......

标签: rdataframedplyr

解决方案


group_by也许您可以通过添加操作来玩一些技巧sample,例如,

iris <- iris %>%
  group_by(factor(Species, levels = sample(levels(Species)))) %>%
  mutate(id = cur_group_id())

推荐阅读