ls(envir = envir, all.names = private) 中的错误:R 中的“envir”参数无效
Posted
技术标签:
【中文标题】ls(envir = envir, all.names = private) 中的错误:R 中的“envir”参数无效【英文标题】:Error in ls(envir = envir, all.names = private) : invalid 'envir' argument in R 【发布时间】: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) 以便获得堆栈跟踪。
【参考方案1】:
你的问题完全解决了吗?前几天我也遇到了类似的问题,整理了一下,想和大家分享一下。实际上,那些包装函数(在我的例子中是 Rbbg 包)调用 rJava 函数在 C 驱动器下的用户文件夹中有一个日志文件,您可以删除这些日志文件,因为它可以让您摆脱错误消息。
就我而言,我需要删除 Rbbg 包创建的 blpjavaapi0.log.0 和 org.findata.blpwrapper.0 文件。
【讨论】:
非常感谢,很遗憾,我不再从事这个项目了。不过我会通知负责人,让他试试~以上是关于ls(envir = envir, all.names = private) 中的错误:R 中的“envir”参数无效的主要内容,如果未能解决你的问题,请参考以下文章
envir mensaje a amigos Facebook发送
eval 中的错误(expr,envir,enclos):没有用于 break/next 的循环,跳转到顶层
不应该 envir = parent.env(environment() 保护我的函数不被修改,尽管在全球环境中发生了啥?
idea 14运行java工程报错-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME envir