2014-11-01 4 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),]) 
} 

모든 의견을 크게 기뻐할 것입니다.

감사합니다. 당신의 data.frame의 무작위 행 서브 세트를 당신이 예제 함수를 정의 할 수 있습니다 예를 들어,이 작업을 수행하는

답변

1

많은 방법 :

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) 
관련 문제