【发布时间】:2015-05-18 17:57:37
【问题描述】:
我在 R 中使用包加载数据时遇到了这个错误,在这个包中,使用了 pakcage rJava。
每次我运行一个函数,错误都是
Error in ls(envir = envir, all.names = private) :
invalid 'envir' argument
这个包已经被证明没有任何问题,只是我电脑的一些环境问题。
我调试的时候发现在之前的最后一个进程中
ls(envir=envir,all.names = private )
变量envir 是NULL,我认为应该是一些值但不是NULL。
经过一些试验,我通过每次安装rJava 解决了这个问题。此外,只有当错误出现时,我安装'rJava',它才会起作用。如果我第一次安装,它将无法正常工作。所以,我猜,安装 'rJava'(或者可能安装包)会导致一些环境变量发生变化。
Java 7 和 Java 8,包括 jdk 或 jre 都经过测试,都不起作用。而对于 R,我使用的是 3.1.3 R,所有的包都是最新的。
以下是一些我认为可能对故障排除有用的信息。
通过安装包,jvm.dll needs to be added to the windows environment path: "Path" 我做到了。
我的 sessionInfo 如下图所示:
R version 3.1.3 (2015-03-09)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=Danish_Denmark.1252 LC_CTYPE=Danish_Denmark.1252 LC_MONETARY=Danish_Denmark.1252 LC_NUMERIC=C
[5] LC_TIME=Danish_Denmark.1252
attached base packages:
[1] grid stats graphics grDevices utils datasets methods base
other attached packages:
[1] rgdal_0.9-1 fields_8.2-1 spam_1.0-1 raster_2.3-33 sp_1.0-17 ecomsUDG.Raccess_2.2-6
[7] downscaleR_0.5-2 maps_2.3-9 downscaleR.java_0.0-2 rJava_0.9-6 gWidgetsRGtk2_0.0-83 cairoDevice_2.22
[13] RGtk2_2.20.31 gWidgets_0.0-54 R.utils_2.0.0 R.oo_1.19.0 R.methodsS3_1.7.0
loaded via a namespace (and not attached):
[1] abind_1.4-3 bitops_1.0-6 boot_1.3-15 CircStats_0.2-4 colorspace_1.2-6 dtw_1.17-1 lattice_0.20-30 MASS_7.3-39
[9] munsell_0.4.2 plyr_1.8.1 proxy_0.4-14 Rcpp_0.11.5 RCurl_1.95-4.5 scales_0.2.4 tools_3.1.3 verification_1.41
感谢您提供的任何帮助。
【问题讨论】:
-
环境变量是一个操作系统概念,它们可以在R中通过
Sys.getenv和Sys.setenv访问。它们基本上是变量名称到值的映射,例如JAVA_HOME = C:\Program Files\Java\jre6。另一方面,R 环境 就像将名称映射到任何 R 对象的列表。请参阅:adv-r.had.co.nz/Environments.html。ls()返回由envir参数指定的 R 环境中所有名称的向量。打电话给ls(envir=NULL)是没有意义的,因此你的错误。 -
@logworthy 谢谢,但不是我打来的……它在包里……问题不在于调用
ls(),而是找不到有效的@ 987654337@.... -
您应该添加更多调试信息。阅读 R 中的调试,例如在运行代码之前使用 options(error=recover) 以便获得堆栈跟踪。
标签: java r environment-variables rjava