我的问题是我必须从数据集中取出多个样本,以使用生成的样本进行多次线性回归。使用下面的代码我可以一次获得一个样本,但我希望更有效地完成它。
mysample <- mydf[sample(1:32619,25),]
mylm <- lm(spd66561~spd66305,data=mysample)
数据集的前25行如下;总共有32,619行。
spd66305 spd66561
4 77 77
9 78 76
10 82 82
14 76 75
21 72 74
23 79 77
25 77 77
27 76 76
28 77 78
30 78 77
32 75 76
33 78 78
34 77 81
35 77 78
38 80 79
39 77 78
40 78 78
41 78 78
42 81 80
43 77 78
44 82 79
45 81 79
47 80 80
48 78 79
49 79 78
我需要为我的回归做200个不同样本量的样本。
我尝试了以下代码,但它返回单行数据;不是我需要的配对数据。
for (i in 1:200) {
x[i] <- (mydf[sample(1:1000,25),])
}
任何建议都将不胜感激。
感谢。
答案 0 :(得分:1)
有很多方法可以做到这一点,例如你可以定义一个样本函数,该函数随机地对data.frame的行进行子集化:
sample.df <- function(df, n) df[sample(nrow(df), n), , drop = FALSE]
然后循环大小的矢量:
lapply(rep(5,4),sample.df,df=dat) ## create for dat samples of fixed size : 5 rows
在你的情况下,你没有给出样本的大小,但我猜是这样的:
lapply(rep(25,200),sample.df,df=dat)