关于如何有效地将任何类型的外部程序包有效地加载到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等)。另外,tcltk2tcltk不同。这是一个扩展(并取决于)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上永远不会出现这种情况。

08-25 06:38