关于如何有效地将任何类型的外部程序包有效地加载到R中,我有一个一般性的问题。我发现许多详细说明此信息的资源都不够用,但是我将省去提及那些相应的URL。我之前已经成功将外部软件包加载到R中,但是在加载fgui
软件包时遇到了困难。
在我的特定情况下,我无法将库fgui
加载到R Studio中。首先,我直接使用以下命令从CRAN下载:
install.packages("fgui", lib="~/Documents/R_dir")
这对我来说很好。我的工作目录设置为〜/ Documents / R_dir
我使用的下一个命令是:
library("fgui", lib.loc="~/Documents/R_dir")
我得到的错误是:
Error : .onLoad failed in loadNamespace() for 'tcltk', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.1/Resources/library/tcltk/libs/tcltk.so':
dlopen(/Library/Frameworks/R.framework/Versions/3.1/Resources/library/tcltk/libs/tcltk.so, 10): Library not loaded: /opt/X11/lib/libX11.6.dylib
Referenced from: /Library/Frameworks/R.framework/Versions/3.1/Resources/library/tcltk/libs/tcltk.so
Reason: image not found
Error: package or namespace load failed for ‘fgui’
我已经检查了线程“ Error when trying to load library(ggplot2) in R”,但是它没有回答我的问题。
请提供任何建议以帮助我使软件包
fgui
在R Studio中正常工作,并随时解决将外部软件包有效加载到R中的更一般性的问题。 最佳答案
tcltk
不是典型的程序包。它可能已经安装在您的系统上,并且不能使用常规的install.packages
过程安装,因为它不在CRAN上(就像R附带的基本软件包一样,例如stats
等)。另外,tcltk2
与tcltk
不同。这是一个扩展(并取决于)tcltk
功能的软件包。
因此,从此开始:
> capabilities("tcltk")
tcltk
TRUE
如果再次出现
FALSE
,则表示您的R并非由tcltk支持构建的。您没有说您使用的是什么操作系统,因此为您提供帮助有点困难。也就是说,如果您使用的是Linux,则需要重建R with tcltk support。这应该是相对简单的。基本上,请确保Tcl和tk在系统上的标准位置(例如
sudo apt-get install tcl8.5-dev tk8.5-dev
之类)可用,然后按照常规过程重建R。如果您使用的是Mac OS,则遇到与John Fox describes here in relation to Rcmdr相同的错误。简而言之,这可能是两件事之一:
与您已安装Tcl的目录有关的文件许可权问题。引用Fox的话:“您可以通过在R命令提示符处发出以下命令来验证此问题的根源:
system("ls -ld /usr/local /usr/local/lib /usr/local/lib/libtcl*")
# ls: /usr/local/lib: Permission denied
# ls: /usr/local/lib/libtcl*: Permission denied
# drwx------ 8 root wheel 272 Sep 24 10:21 /usr/local
如果system命令的输出如上所示,则应转到Terminal并执行以下操作:
sudo chmod -R a+rX /usr/local
并输入密码以更改目录权限。您有一个过时的X-Windows版本。尝试运行Mac OS软件更新。
通过创建符号链接as described in this answer也可以解决该问题。
除非您是在没有tcl / tk支持的情况下从源代码构建R的,否则在Windows上永远不会出现这种情况。