从R中的数据集中取出多个样本

时间:2014-11-01 00:22:50

标签: r

我的问题是我必须从数据集中取出多个样本,以使用生成的样本进行多次线性回归。使用下面的代码我可以一次获得一个样本,但我希望更有效地完成它。

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),])
 }

任何建议都将不胜感激。

感谢。

1 个答案:

答案 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)