2013-12-10 5 views
7

제발! 나는 어떤 도움을 주셔서 감사합니다! 감사!리샘플링 기능을 1000 번 반복 하시겠습니까? lapply 사용 하시겠습니까?

1000 회 리 샘플링을 반복하는 데 문제가 있습니다. replicate()를 사용하여 시도했지만 작동하지 않습니다. 거기에 다른 방법이 있습니까? 이것이 lapply를 사용하여 수행 할 수 있다면 누구든지 나를 보여줄 수 있습니까? 나는 무작위 데이터를 샘플링하여 1000 betas0 & 1을 얻을 수

#sampling 1000 betas0 & 1 (coefficients) from the data 
get.beta=function(data,indices){ 
    data=data[indices,] #let boot to select sample 
    lm.out=lm(y ~ x,data=data) 
    return(lm.out$coefficients) 
} 
n=nrow(data) 
get.beta(data,1:n) 

bootcoe=boot(data,get.beta,R=1000) #generate 1000 random samples 
head(bootcoe$t) #look at the betas 

위의 코드에서 : 다음 내 코드입니다. 그리고 나는 다른 베타를 얻기 위해 1000 번하고 싶습니다. replicate() 외에 어떻게해야합니까?

+0

그래서'복제 (1000, {your_codez은})'작동하지 않습니다? –

+0

예, rep (1000, function())을 시도했지만 결과를 얻을 수 없습니다. – user2978129

+0

나는'function()'을 사용하지 않았다. 중괄호를 사용해야합니다. –

답변

19

이것은 확장 된 코멘트로서 replicate이 작동해야 함을 보여줍니다. 다음은 CLT의 예입니다. 중괄호 사이에있는 내용 만 바꾸면됩니다.

x <- replicate(1000, { 
    mm <- runif(10) 
    mean(mm) 
    }) 
hist(x) 

enter image description here

+0

고마워요 @Roman. 그래서 제 경우에는 {} 안에 넣어야합니까? get.beta를 넣으려고했으나 오류가 발생하고 bootcoe가 오래 실행됩니다. get.beta와 bootcoe를 모두 넣으면 오류가 다시 발생합니다. – user2978129

+0

또한 왜 끝에 평균 (mm)이 있습니까? 감사 ! – user2978129

+0

@ user2978129 마지막 줄은 함수의 결과입니다. 당신은 중괄호 사이에 당신이 .... 평가되고 싶은 것들을 넣어야합니다. –

관련 문제