无法通过JRI加载ggplots2包

时间:2011-09-08 12:53:45

标签: r ggplot2 jri

我在通过JRI接口加载ggplot2包时遇到问题。 ggplot2通过R脚本加载正常,所以我相信它已经正确安装。只有当我尝试通过JRI加载它时才会出现以下错误。

Loading required package: reshape
Loading required package: plyr
Error in dyn.load(file, DLLpath = DLLpath, ...):
unable to load shared object '/usr/local/R/lib/R/library/plyr/libs/plyr.so':
ld.so.1: java: fatal: relocation error: file /usr/local/R/lib/R/library/plyr/libs/plyr.so: symbol R_NilValue: referenced symbol not found
Error: package 'plyr' could not be loaded

因此ggplot2要求加载plyr包。如果由R脚本运行,则此包将加载,但不会从JRI运行。我怀疑这是因为在加载JRI之前没有正确设置环境变量,可能是LD_LIBRARY_PATH。查看R脚本我不知道这个路径的设置位置(因为R脚本显然正确地为plyr设置所有环境变量以找到所需的R_NilValue符号)。我已经将R脚本中的所有环境变量设置复制到我用来加载JRI的脚本中(以便它正确设置R_HOME,R_SHARE_DIR,R_INCLUDE_DIR和R_DOC_DIR - 我在通过JRI加载其他包时遇到问题,直到我设置了这些环境变量,并解决了这些问题)。但是,这不能解决错误。此外,我已经尝试从rJava / JRI提供的运行脚本加载ggplots2包,我仍然得到相同的错误。谁能告诉我R_NilValue的定义在哪里,以及我做错了什么?

我在sparc-sun-solaris2.10 32位平台上运行R版本2.13.0,包rJava 0.9-0和ggplot2 0.8.9。

1 个答案:

答案 0 :(得分:1)

这意味着包中存在不匹配。换句话说,有一些为静态R构建的包,它们与用于动态R的包构建一起使用。重新安装包应该解决这个问题。