Использование пакета снегопада в R для моделирования
Я начинаю работу с пакетом снегопада следующим образом:
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)
может работать. Буду благодарен за вашу помощь.
1 ответ
Решение
Я предполагаю, что Y скрывается и является внутренней переменной. Работает следующая функция (изменил регистр "Y" на "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)
test
}