在 R 中创建唯一的随机组 ID

Man*_*fes 6 r dataframe dplyr

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

library(datasets)
library(dplyr)

data(iris)

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

Run Code Online (Sandbox Code Playgroud)

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

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

Tho*_*ing 5

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

iris <- iris %>%
  group_by(factor(Species, levels = sample(levels(Species)))) %>%
  mutate(id = cur_group_id())
Run Code Online (Sandbox Code Playgroud)