我仍在學習R,並且遇到問題編寫和讀取f中的文件。 我想要做的是檢索什麼迭代我獲得共線性當我重新採樣並保存到一個向量然後。在第二個代碼中使用這個向量來忽略這些迭代並進入下一次迭代。將r輸出寫入r對象並在下一個代碼中使用
我在我的代碼中有幾個錯誤,你幫忙請給我更好的方法來做到這一點。但請記住我需要將iter矢量保存到文件中,以便稍後使用它。
下面是代碼:
a0=rep(1,40)
a=rep(0:1,20)
b=c(rep(1,20),rep(0,20))
c0=c(rep(0,12),rep(1,28))
c1=c(rep(1,5),rep(0,35))
c2=c(rep(1,8),rep(0,32))
c3=c(rep(1,23),rep(0,17))
c4=c(rep(1,6),rep(0,34))
x=matrix(cbind(a0,a,b,c0,c1,c2,c3,c4),nrow=40,ncol=8)
sam <- function(n){
iterlist <- NULL
for(i in 1:n){
set.seed(i)
indx <- sample(1:nrow(x),nrow(x),replace=T)
samx <- x[indx,]
e <- crossprod(samx)
ee <- eigen(e)
evals <- ee$values
Zeval <- which(ifelse(abs(evals)<=1e-7,TRUE,FALSE))
if(length(Zeval)!=0) iterlist <- c(iterlist,i)
}
return(iterlist)
}
iter <- sam(20)
setwd("C:/Users/Sam/Desktop/R")
writeLines(iter)
readLines(iter)
fit <- function(dat,n){
for(i in 1:n){
if(i==iter) next
set.seed(i)
indx <- sample(1:nrow(x),nrow(x),replace=T)
samx <- x[indx,]
fit <- lm(rnorm(nrow(x),i,2*i)~samx-1)
bhat <- coef(fit)
}
return(bhat)
}
fit(x,20)
謝謝
嗨謝謝你的解釋,這是我的壞,我有vvesion問題。我沒有看到我的代碼中的錯誤。 –
嗨謝謝你的解釋,這是我的不好,我有版本問題。我沒有看到我的代碼中的錯誤。另外我注意到lapply中存在錯誤(1:4,sam,20)。首先,我無法將我剛剛創建的函數與我正在嘗試做的相似。所有我需要做的就是保存iterlist向量,這樣我就可以在另一個控制檯或程序中使用矢量了。我創建了一個函數sam來獲取這些不良迭代,所以我試圖避免它們在代碼中的其他地方。你能告訴我如何保存載體,以便我可以使用它嗎?我需要循環,因爲我需要使用下一個 –