2014-11-01 25 views
1

我的問題是我必須從數據集中取多個樣本,以使用所得樣本進行多重線性迴歸。使用下面的代碼,我一次可以得到一個樣本,但我想更有效地做到這一點。從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

很多方法可以做到這一點,例如,你可以定義一個函數示例,該子集的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)