在 R 中使用降雪包进行一些模拟
Using snowfall package in R to do some simulation
我正以这种方式盯着降雪包工作:
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)
我收到错误:
"Error in checkForRemoteErrors(val): 6 nodes produced errors; first error: object 'Y' not found"。但是当我隐藏最后一行并更改 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)
可以工作。我会很感激你的帮助。
我的猜测是 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
}
我正以这种方式盯着降雪包工作:
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)
我收到错误: "Error in checkForRemoteErrors(val): 6 nodes produced errors; first error: object 'Y' not found"。但是当我隐藏最后一行并更改 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)
可以工作。我会很感激你的帮助。
我的猜测是 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
}