R会话中止致命错误,我很困惑

时间:2017-06-05 00:36:31

标签: r session

我正在使用R进行转换,这是我的代码。

convert_word_vector <- function(df, vecMap, n) {
  if(exists("result")) {rm(result)}

  for (row_name in row.names(df)) {
    vec <- vecMap[[row_name]]
    if(is.null(vec)) {
      vec <- data.frame(t(rep(0,n)))
    }
    colnames(vec) <- paste(row_name, colnames(vec), sep="_")
    merge_value <- merge(t(df[row_name, ]),vec)
    val <- merge_value[[row_name]] * merge_value[-(1:1)]
    if(!exists("result")) {
      result <- val
    } else {
      result <- cbind(result, val)
    }
  }
  return(result)
} 

我用小数据集测试了它,一切都很好。然后我尝试一些具有相同维度的数据,如

a <- data.frame(replicate(43000,rnorm(8000)))
vec_map <- hash()
for(i in 1:7000) {
  vec_map[[as.character(i)]] <- data.frame(replicate(200,rnorm(2)))[1,]
}
b <- convert_word_vector(a, vec_map, 200)

运行一段时间后,R会话中止了致命错误。这是因为数据太大或我的功能有问题吗? 我的会议信息:

R version 3.4.0 (2017-04-21)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: OS X El Capitan 10.11.3

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib

可以计算'RAM:

8 GB 1600 MHz DDR3

任何建议将不胜感激。先感谢您。

0 个答案:

没有答案