Я предлагаю другой ответ без dplyr
, но я обязан иметь дело с типом данных.Однако я могу смоделировать 10 случайных величин без 10-кратного вызова функции rnorm
.Я не знаю, лучше ли звонить 10 раз для одной симуляции или один раз для 10 симуляций.
Данные о проблеме:
Group = c("A","B","C","D","E")
Mean = c(1.25,5.5,3.25,1,5)
SD = c(2.5,3,2.25,2,5.35)
df = data.frame(Group, Mean, SD)
Мой код следующий:
m <- length(Mean)
p <- 10
res <- data.frame(factor("A", level=Group), matrix(0, nrow=m*p, ncol=4))
res[,1] <- rep(Group, each = p)
res[,2] <- rep(Mean, each = p)
res[,3] <- rep(SD, each = p)
res[,4] <- matrix(apply(df, 1, function(row, p){
rnorm(p, mean=as.numeric(row[2]), sd=as.numeric(row[3]))}, p = p), nrow=p*m, ncol=1)
res[,5] <- rep(seq(1, p), m)
colnames(res) = c("Group", "Mean", "SD", "Est_Mean", "Indices")
res = res[order(res$Indices), ]