我的样本数据有270个观察结果,如下所示
age id kilometers
32 1 1
30 2 8
23 3 2
31 4 6
我首先创建一个空白数据框来存储信息
df <- data.frame(Sample.Num = integer(),
Sample.Mean = integer(),
stringsAsFactors = FALSE)
df[1,] <- NA
然后我读了R
中的文件sampledata <- read.csv(file.choose(),header = TRUE)
然后我试图运行一个for循环,它将从上面的270行中随机选择两个观察值,并存储样本数和样本平均公里数。发布我想检查平均'
的抽样分布for (i in 1:100){
mysample <- sampledata[sample(1:nrow(sampledata),size = 2,replace = TRUE),]
meansample <- mean(mysample$kilometers,na.rm = TRUE)
df$Sample.Num <- i
df$Sample.Mean <- meansample
}
但我对R来说很新。每次运行时,样本数都会改变,但数据帧df会存储最后一次迭代(即第100次迭代)。我无法存储剩余的99个 任何帮助将不胜感激。
答案 0 :(得分:0)
你可以这样做:
df <- data.frame(
Sample.Num=1:100,
Sample.Mean=replicate(100, mean(sampledata$kilometers[sample.int(nrow(sampledata), size=2, replace=TRUE)], na.rm=TRUE))
)
或更短:
df <- data.frame(
Sample.Num=1:100,
Sample.Mean=replicate(100, mean(sample(sampledata$kilometers, size=2, replace=TRUE), na.rm=TRUE))
)
如果sampledata$kilometers
中没有NA,则可以执行以下操作:
df <- data.frame(
Sample.Num=1:100,
Sample.Mean=replicate(100, mean(sample(sampledata$kilometers, 2, rep=TRUE)))
)