R" mi" package:mi(...)命令抛出错误

时间:2017-08-18 23:04:08

标签: r cluster-computing remote-server r-mice

我试图用" mi"做多次插补。包(v1.0)。由于计算/处理时间的限制,我将代码分成两个文件。第一个完成了所有的mi式预处理,第二个实际上进行了插补。

第一个文件运行没有错误,但我在这里包含它是为了完整性(下面是编辑的,文件的较短版本):

require(mi)

# Load data for multiple imputation
data = as.data.frame(read.delim("for_mi.csv"))
...
# Declare data as missing data frame for MI functions
mdf = missing_data.frame(data)

mdf <- change(mdf, y = "x", what = "type", to = "nonnegative-continuous")
... (many type corrections later) ...
mdf <- change(mdf, y = "y", what = "type", to = "positive-continuous")

# Save pre-processed missing-format data for analysis in r_mi_2.R.
saveRDS(mdf,"preprocessed.rds")

第二个文件是抛出错误的文件:

require(mi)
# Load output from first file
mdf <- readRDS("preprocessed.rds")

# Note: at this point, mdf loads as a missing_data.frame. 
# MI commands such as show(mdf) function as expected.

# Impute data
imputations <- mi(mdf, n.iter = 30, n.chains = 4, max.minutes = Inf, parallel = TRUE)

我得到以下输出:

Chain 1

Chain 1 Iteration 0

Chain 2

Chain 2 Iteration 0

Chain 1 Iteration 1

Chain 3

Chain 3 Iteration 0

Chain 2 Iteration 1

Chain 4

Chain 4 Iteration 0

Chain 3 Iteration 1

Chain 4 Iteration 1

Error in checkForRemoteErrors(val) : 
  4 nodes produced errors; first error: cannot open the connection
Calls: mi ... clusterApply -> staticClusterApply -> checkForRemoteErrors
Warning message:
In file(file, ifelse(append, "a", "w")) :
  cannot open file '/var/tmp/Rtmp0TqkWn/mi1502972500/pars_1.csv': No such file or directory
Warning message:
In file(file, ifelse(append, "a", "w")) :
  cannot open file '/var/tmp/Rtmp0TqkWn/mi1502972500/pars_2.csv': No such file or directory
Execution halted
Warning message:
In file(file, ifelse(append, "a", "w")) :
  cannot open file '/var/tmp/Rtmp0TqkWn/mi1502972500/pars_3.csv': No such file or directory
Warning message:
In file(file, ifelse(append, "a", "w")) :
  cannot open file '/var/tmp/Rtmp0TqkWn/mi1502972500/pars_4.csv': No such file or directory

其他背景资料:

  • 我在群集上运行代码,在单个节点上使用8个处理器。我也尝试在我的计算机上本地运行它,结果相同。
  • 我尝试过改变链的数量,减少迭代次数,设置parallel = FALSE,但都无济于事。
  • 我尝试使用和出现在mi插图中的options(mc.cores = 4)行运行代码(see here, page 4
  • 上面链接的mi插图指出,运行mi的许多错误都源于RAM耗尽。我不确定如何测试这个,但有些信息:起始对象mdf是128MB,群集上的每用户服务器上限是32GB,即使我设置{{1 }或parallel=FALSE

非常感谢任何帮助。谢谢!

编辑:n.iter=1的错误输出是:

parallel = FALSE

0 个答案:

没有答案