[英]Running simulations: random sampling in a for loop
我正在嘗試使用只有 x 和 y 值(為本練習任意組成)的數據集 (TOY) 運行此循環,並且我繼續收到第 7 行錯誤:TOY 中的錯誤(TD2$x):無法找到 function“玩具”。 我不確定如何解決 R 似乎將 TOY 識別為該行中的 function 而不是數據集的事實。 它作為 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)
}
后面帶有 () 的任何東西都是 function,所以 TOY() 正在調用不存在的 TOY function。 您需要使用方括號 []。 此外,您采樣的方式可能不起作用。 在下面試試這個:
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)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.