Я начинаю работу с пакетом снегопада следующим образом:
library(snowfall)
sfInit(parallel=TRUE, cpus=6, type="SOCK")
#loading packages
sfLibrary(package = lars)
sfLibrary(package=covTest)
Функция, которую я хочу вычислить несколько раз, используя sfLapply:
funkcja <- function(i,k=5)
{
beta <- c(k,k,0,k,k,rep(0,35))
X <- matrix(rnorm(100*40),100,40)
Y <- X%*%beta+rnorm(100)
lasso.lars <- lars(X,Y,intercept=FALSE,use.Gram=FALSE)
test <- covTest(lasso.lars,X,Y,sigma.est=1)
test
}
Но когда я пытаюсь это
sfLapply(1:100,funkcja)
Я получаю сообщение об ошибке: «Ошибка в checkForRemoteErrors (val): 6 узлов вызвали ошибки; первая ошибка: объект« Y »не найден».Но когда я прячу последнюю строку, кроме одной, и изменяю тест для lasso.lars, то больше нет тробулы о векторе Y:
funkcja <- function(i,k=5)
{
beta <- c(k,k,0,k,k,rep(0,35))
X <- matrix(rnorm(100*40),100,40)
Y <- X%*%beta+rnorm(100)
lasso.lars <- lars(X,Y,intercept=FALSE,use.Gram=FALSE)
#test <- covTest(lasso.lars,X,Y,sigma.est=1)
lasso.lars
}
Я не понимаю этого, потому что строка
test <- covTest(lasso.lars,X,Y,sigma.est=1)
должно работать, так как
lars(X,Y,intercept=FALSE,use.Gram=FALSE)
может работать.Буду благодарен за вашу помощь.