.内部(La_rs(x,FALSE))在Windows上长时间(可重现)脚本后崩溃R

前端之家收集整理的这篇文章主要介绍了.内部(La_rs(x,FALSE))在Windows上长时间(可重现)脚本后崩溃R前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在.:: Krig.engine.default中使用的本征函数内部的.Internal(La_rs(x,FALSE))调用导致我的R控制台[1]在一个巨大的脚本被触发之后崩溃.

我相信这是造成爆炸的一线.但是,同一行在新会话中不会崩溃:

  1. x <- structure(c(0.00251355321405019,-0.000589785531216647,-0.000172411748626129,-0.000589785531217227,0.000897505637785858,-0.000714600035538855,-0.000172411748626269,-0.000714600035538766,0.00123946691634644),.Dim = c(3L,3L))
  2. .Internal(La_rs(x,FALSE))

您可以使用以下三行重现此控制台崩溃(大约十分钟):

  1. # install.packages( c("MonetDB.R","MonetDBLite","survey","SAScii","descr","downloader","digest","sas7bdat","R.utils","ggplot2","scales","mapproj","sqldf","maptools","raster","rgeos","stringr","plyr","mgcv","spatstat","rgeos"),repos=c("http://dev.monetdb.org/Assets/R/","http://cran.rstudio.com/"))
  2. # path.to.7z <- "7za" # macintosh/unix users need to specify 7z
  3. # setwd("C:/My Directory/")
  4. # warning: some large downloads
  5. downloader::source_url( "https://raw.githubusercontent.com/davidbrae/swmap/8eecde1683efab65a7e27eb7c92e7967a98dc639/how%20to%20map%20the%20american%20community%20survey.R",prompt = FALSE )

对不起,这个例子不是最小的,当我删除不同的东西时,崩溃消失了

2016年2月22日编辑:更糟糕的是,当我尝试一个脚本来自行触发崩溃,它不会死!

  1. downloader::source_url("https://gist.githubusercontent.com/ajdamico/0c256ed3a77d77eecfd6/raw/ce0570effd37c6384f2e27f1b38335078adcb49d/La_rs_bughunt.R",echo=T,prompt=F)

谢谢!

[1] R版本3.2.3(2015-12-10)平台:x86_64-w64-mingw32 / x64(64位)

如果我一次运行整个脚本,R在Rterm.exe中没有任何信息崩溃.但是如果我将脚本分成两部分,R给我这个错误

  1. > x
  2. [,1] [,2] [,3]
  3. [1,] 0.0025135532 -0.0005897855 -0.0001724117
  4. [2,] -0.0005897855 0.0008975056 -0.0007146000
  5. [3,] -0.0001724117 -0.0007146000 0.0012394669
  6. > .Internal(La_rs(x,TRUE))
  7. Error: 'a' must be a complex matrix

更多的调试信息:它看起来像.Internal()函数La_rs已经被破坏了吗?

  1. > debug::mtrace(.Internal(La_rs(x,TRUE)))
  2. Error in debug::mtrace(.Internal(La_rs(x,TRUE))) :
  3. Dunno wot to do with .Internal(La_rs(x,TRUE))
  4. > x
  5. [,] -0.0001724117 -0.0007146000 0.0012394669
  6. > class(x)
  7. [1] "matrix"
  8. > .Internal(La_rs(x,FALSE))
  9. Error: 'a' must be a complex matrix
  10. > .Internal(La_rs(x,TRUE))
  11. Error: 'a' must be a complex matrix
  12. > .Internal(La_rs(1,TRUE))
  13. Error: 'a' must be a complex matrix
  14. > .Internal(La_rs(matrix(1,2,3,4),TRUE))
  15. Error: 'a' must be a complex matrix

2016年2月21日更新:我能够在第二个Windows脚本上重现此错误(无R死亡).这里是永久链接

  1. # install.packages( c( 'fields','maps','ggplot2','raster','sqldf','rgeos','rgdal','sp','digest','ff','descr','SAScii','stringr','R.utils','R.oo','RCurl','MonetDBLite','MonetDB.R','survey','downloader' ),"http://cran.rstudio.com/"))
  2. # setwd( "S:/temp/PNAD" )
  3. # warning: some large downloads
  4. downloader::source_url( "https://raw.githubusercontent.com/davidbrae/swmap/4501e2c8927faaffa02c92d3e40d16beb44bca92/how%20to%20map%20the%20pesquisa%20nacional%20por%20amostra%20de%20domicilios.R",echo = TRUE,prompt = FALSE )

这里是错误发生了什么. La_rs再次出现损坏.

  1. > for ( i in 1:4 ){
  2. +
  3. + this.krig.fit <-
  4. + Krig(
  5. + cbind( x$x,x$y ),+ x[,paste0( 'occcat',i ) ],+ weights = x[,paste0( 'weigh .... [TRUNCATED]
  6. Error in eigen(tempM,symmetric = TRUE) : 'a' must be a complex matrix
  7. In addition: There were 50 or more warnings (use warnings() to see the first 50)
  8. > traceback()
  9. 8: eigen(tempM,symmetric = TRUE)
  10. 7: Krig.engine.default(out,verbose = verbose)
  11. 6: Krig(cbind(x$x,x$y),x[,paste0("occcat",i)],weights = x[,paste0("weight",i)]) at filee101515cee#676
  12. 5: eval(expr,envir,enclos)
  13. 4: eval(ei,envir)
  14. 3: withVisible(eval(ei,envir))
  15. 2: source(temp_file,...)
  16. 1: downloader::source_url("https://raw.githubusercontent.com/davidbrae/swmap/master/how%20to%20map%20the%20pesquisa%20nacional%20por%20amostra%20de%20domicilios.R",echo = T,prompt = F)
  17. > sessionInfo()
  18. R version 3.2.3 (2015-12-10)
  19. Platform: x86_64-w64-mingw32/x64 (64-bit)
  20. Running under: Windows Server 2008 R2 x64 (build 7601) Service Pack 1
  21.  
  22. locale:
  23. [1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
  24. [3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
  25. [5] LC_TIME=English_United States.1252
  26.  
  27. attached base packages:
  28. [1] tcltk grid stats graphics grDevices utils datasets methods base
  29.  
  30. other attached packages:
  31. [1] fields_8.3-6 maps_3.1.0 spam_1.3-0 ggplot2_2.0.0 raster_2.5-2
  32. [6] sqldf_0.4-10 Rsqlite_1.0.0 gsubfn_0.6-6 proto_0.3-10 rgeos_0.3-17
  33. [11] rgdal_1.1-3 sp_1.2-2 digest_0.6.9 ff_2.2-13 bit_1.1-12
  34. [16] descr_1.1.2 SAScii_1.0 stringr_1.0.0 R.utils_2.2.0 R.oo_1.19.0
  35. [21] R.methodsS3_1.7.0 RCurl_1.95-4.6 bitops_1.0-6 MonetDBLite_0.2.0 MonetDB.R_1.0.1
  36. [26] DBI_0.3.1 survey_3.30-3 downloader_0.4
  37.  
  38. loaded via a namespace (and not attached):
  39. [1] Rcpp_0.12.3 plyr_1.8.3 tools_3.2.3 gtable_0.1.2 lattice_0.20-33
  40. [6] magrittr_1.5 scales_0.3.0 codetools_0.2-14 xtable_1.8-0 colorspace_1.2-6
  41. [11] stringi_1.0-1 munsell_0.4.2 chron_2.3-47
  42. >

2016年2月27日编辑:非常类似的错误,在此脚本中添加gc()可以防止崩溃

  1. # account creation page
  2. # http://www.icpsr.umich.edu/rpxlogin?path=NACJD&request_uri=https%3a%2f%2fwww.icpsr.umich.edu%2ficpsrweb%2fNACJD%2f
  3. your.username <- 'email@address.com'
  4. your.password <- 'some_password'
  5.  
  6. setwd( "C:/My Directory/NCVS_BUG/" )
  7. library(downloader)
  8. source_url( "https://gist.githubusercontent.com/ajdamico/4cd5f76aebbdaae5bc88/raw/1ae140e84aa82f1c12af297badad6d8c2c50f5a1/ncvs_bughunt.R",prompt = FALSE )
哇,那个错误很难再现.需要重复的步骤数量可能是您没有多少答案的原因.

我终于设法将所有下载的数据和安装的软件包都重新安装,但是没有得到你的代码(这是相当的参与)到达你指出它失败的程度.

根据comments I made,错误消息表明,该lapack正在尝试执行您正在使用的功能的复杂版本(this line抛出的错误),但输入变量的类型不是矩阵,因此会触发错误.这很可能是低级别的根本原因.

你可能真的想要答案的问题是,为什么会发生这种情况?

我怀疑这意味着您的一个步骤的输入数据是空的或一维的.我将继续尝试再现以证明这一理论.

猜你在找的Windows相关文章