为 R 组生成随机数

goe*_*ges 4 random numbers group-by r

我想为组生成相同的随机数。不幸的是,我的以下代码为每一行生成随机数。

randomised <- data %>%
  group_by(`ID`)%>%
  mutate(random = sample(1:100,n(), replace = TRUE))
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。

Ron*_*hah 6

您应该只选择 1 个值,sample该值将被回收用于组中的所有值。

library(dplyr)
data %>% group_by(ID)%>% mutate(random = sample(100,1))
Run Code Online (Sandbox Code Playgroud)

或者以 R 为基数:

data$random <- with(data, ave(seq_along(ID), ID,FUN = function(x) sample(100, 1)))
Run Code Online (Sandbox Code Playgroud)