Бегущие симуляции: случайная выборка в цикле for - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь запустить этот цикл, используя набор данных (TOY) только из значений x и y (произвольно составленных для этого упражнения), и продолжаю получать эту ошибку строки 7: Ошибка в TOY (TD2 $ x): не удалось найти функцию "ИГРУШКА". Я не уверен, как исправить тот факт, что R, кажется, распознает TOY как функцию в этой строке, а не как набор данных. Он сохраняется в моем рабочем каталоге в виде файла RDS. Любая помощь очень ценится.

set.seed(123)
random.sims<-1000 
n<-50 
results<-c() #empty vector for results
TD2 <- c()
for (i in 1:random.sims) {
TD2 <- TOY[sample(1:length(TOY$x),n),]
r <- lm(y~0+x,TD2) #regressing y against
reg <- lm(y~x,TD2)
res <- reg$residuals
result[i]<- mean(TOY(TD2$x)%*%res)
 }

1 Ответ

0 голосов
/ 24 октября 2019

Все, что с последующим () является функцией, поэтому TOY () вызывает функцию TOY, которой не существует. Вам нужно использовать квадратные скобки []. Также способ, которым вы взяли образцы, может не работать. Попробуйте это ниже:

TOY = data.frame(x=rnorm(100),y=rnorm(100))
set.seed(123)
random.sims<-1000 
n<-50 
results<-c() #empty vector for results
TD2 <- c()
for (i in 1:random.sims) {
# since you sampled without replacement
TD2 <- sample(1:nrow(TOY))
reg <- lm(y~x,TOY[TD2,])
res <- reg$residuals
results[i]<- mean(TOY$x%*%res)
 }
...