В настоящее время у меня есть код ниже. Функция работает при запуске вне функции boot(), но при использовании функции boot() выдает ошибку
Ошибка в t.star[r, ] ‹- res[[r]] : количество элементов для замены не кратно длине замены.
Когда я использую функцию boot(), более низкие значения R позволяют функции работать правильно. Есть ли что-то, что мне нужно добавить к моей функции, чтобы я больше не получал эту ошибку?
alassoOLS_ydot_n10_fn <- function(data,index){ #index is the bootstrap sample index
x <- data[index,-1]
y <- data[index,1]
cv.out <- cv.glmnet(x,y,alpha=1,nfolds=10, penalty.factor = 1 / abs(best_ridge_coef.ydot.n10)) #alpha=1, lasso
bestlam <- cv.out$lambda.min #the best lambda chosen by CV
lasso.mod <- glmnet(x,y,alpha=1,lambda=bestlam, penalty.factor = 1 / abs(best_ridge_coef.ydot.n10))
coef <- as.vector(coef(lasso.mod))[-1]
coef_nonzero <- coef != 0
ls.obj <- lm(y ~x[, coef_nonzero, drop = FALSE])
ls_coef <- (ls.obj$coefficients)[-1]
return(ls_coef)
}
boot(ydot_matrix_n10,alassoOLS_ydot_n10_fn,R=500)