【发布时间】:2020-05-19 19:28:00
【问题描述】:
出于演示目的,我想从平均值为 0、标准差为 2 的正态分布中抽取 30 个随机观测值。我想对这个“总体”抽样 10 次,因此我将以 300 个观测值和 10 个观测值结束团体。以下代码有效,但它重复相同的数字。每次迭代时我都想要不同的数字。
samp<-rep(c(1:10),each = 30)
obs <- tibble(observations=rep(c(rnorm(30, mean = 0, sd=2)), times = 10))
data<-cbind(samp,obs)
我确实知道我只能对 300 个随机数进行抽样,但我想说明的重点是抽样总体。我怎样才能改变以前的代码来做到这一点?
我还想用误差线(使用标准差)绘制每个采样例程(使用ggplot2)的平均值,如下所示。有没有办法用下面的操作强制上述操作(或每次迭代产生不同数字的操作)并达到相同的结果?
results<-
data%>%
group_by(samp)%>%
summarize(avg = mean(data$obs),
stdev = sd(data$obs))
plot<-
ggplot(results, aes(x=samp, y=avg, group=samp, color=samp)) +
geom_line() +
geom_point()+
geom_errorbar(aes(ymin=avg-stdev, ymax=avg+stdev), width=.2,
position=position_dodge(0.05))
print(plot)
【问题讨论】:
-
你可以使用
n <- 10;replicate(n, rnorm(30, mean = 0, sd=2), simplify = FALSE) -
示例中的
data是什么 -
抱歉,我忘了添加第三行代码。我为未来的观众更正了
标签: r ggplot2 plot random iteration