Вы должны просто выбрать 1 значение из sample
, которое будет переработано для всех значений в группе.
library(dplyr)
data %>% group_by(ID)%>% mutate(random = sample(100,1))
Или в базе R:
data$random <- with(data, ave(seq_along(ID), ID,FUN = function(x) sample(100, 1)))