2013-12-10 4 views
7

Прошу меня! Я ценю любую помощь! Благодаря!Повторите функцию повторной выборки в 1000 раз? Используется?

У меня есть проблема при повторном повторном отборе на 1000 раз. Я попытался использовать replicate(), чтобы сделать это, но он не работает. Есть ли другой способ сделать это? Может ли кто-нибудь показать мне, возможно ли это сделать, используя lapply? Ниже мой код:

#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 betas0 & 1 методом случайной выборки данных. И я хотел бы сделать это 1000 раз, чтобы получить разные бета-версии. Как мне это сделать, кроме replicate()?

+0

Так 'повторности (1000, {your_codez})' не работает? –

+0

ya, я попробовал 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. Итак, в моем случае, что я должен положить внутри {}? Я попробовал put get.beta, но он дает ошибки, а bootcoe работает в течение длительного времени. Помещение обоих get.beta и bootcoe снова дает ошибку. – user2978129

+0

Кроме того, почему в конце есть среднее значение (мм)? Благодаря ! – user2978129

+0

@ user2978129 Последняя строка является результатом вашей функции. Вы должны поместить между фигурными скобками вещи, которые хотите оценить ... 'n' раз. –