当我模拟50个正态分布的随机样本并尝试计算每个模拟的均值和方差时,出现以下错误:“有50个或更多警告(请使用warnings()查看前50个)”。
n=100
mean=100
sd=25
sample=NULL
meansample=NULL
sdsample=NULL
for (i in 1:50)
{
sample[i]=rnorm(n,mean,sd)
meansample[i]=mean(sample[i])
sdsample[i]=sd(sample[i])
}
sample
meansample
sdsample`
我想问我在执行代码时如何正确计算平均值和标准偏差,以及为什么收到此错误“有50个或更多警告(使用warnings()查看前50个)”的原因。 / p>
答案 0 :(得分:4)
我个人会那样做。
x <- replicate(50, rnorm(100, 100, 25), simplify = FALSE)
sapply(x, mean)
sapply(x, sd)
当前代码的问题是样本将包含50个独立的数据集,因此您可能希望成为一个列表,将其称为样本[[i]]。
n=100
mean=100
sd=25
sample=list()
meansample=NULL
sdsample=NULL
for (i in 1:50)
{
sample[[i]]=rnorm(n,mean,sd)
meansample[i]=mean(sample[[i]])
sdsample[i]=sd(sample[[i]])
}
sample
meansample
sdsample