簡體   English   中英

運行模擬:for 循環中的隨機抽樣

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM