war*_*hip 11 tk-toolkit r cran
我有一个关于如何有效地将任何类型的外部包加载到R中的一般性问题.我发现许多详细说明这些信息的来源是不够的,但我将不再提及那些相应的URL.我之前已成功将外部软件包加载到R中,但是我在加载fgui软件包时遇到了困难.
在我的具体情况下,我无法将库加载fgui到R Studio中.首先,我使用以下命令直接从CRAN下载:
install.packages("fgui", lib="~/Documents/R_dir")
Run Code Online (Sandbox Code Playgroud)
这对我来说很好.我的工作目录设置为〜/ Documents/R_dir
我使用的下一个命令是:
library("fgui", lib.loc="~/Documents/R_dir")
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
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’
Run Code Online (Sandbox Code Playgroud)
我已经检查了线程" 在R中尝试加载库(ggplot2)时出错 "但它没有回答我的问题.
请帮助我提供任何建议,以使程序包fgui在R Studio中正常工作,并随时解决有效将外部程序包加载到R中的更一般问题.
Tho*_*mas 15
tcltk不是一个典型的包.它可能已经安装在您的系统上,并且无法使用常规install.packages过程进行安装,因为它不在CRAN上(就像R附带的基本软件包一样stats,等等).另外,tcltk2是不一样的tcltk; 这是一个扩展(并依赖于)功能的包tcltk.
所以,从这开始:
> capabilities("tcltk")
tcltk
TRUE
Run Code Online (Sandbox Code Playgroud)
如果它返回,FALSE则意味着您的R不是使用tcltk支持构建的.你没有说你正在使用什么操作系统,所以帮助你有点困难.
也就是说,如果你在Linux的,你需要重建[R 与tcltk支持.这应该相对简单.基本上,确保您的系统上的Tcl和tk在标准位置(类似sudo apt-get install tcl8.5-dev tk8.5-dev)可用,然后按照常规程序重建R.
如果您使用的是Mac OS,则会遇到John Fox在此处描述的与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
Run Code Online (Sandbox Code Playgroud)如果系统命令的输出如上所示,您应该转到终端并执行以下操作:sudo chmod -R a+rX /usr/local并输入您的密码以更改目录权限.
它也可以通过创建符号链接来解决,如本答案中所述.
这应该永远不会出现在Windows上,除非您在没有tcl/tk支持的情况下从源代码构建R.
在 Arch Linux 上,tk是一个单独的软件包tcl,并且两者都需要安装:
sudo pacman -S tcl tk
Run Code Online (Sandbox Code Playgroud)
考虑到capabilities("tcltk")with R的输出为TRUE(这意味着您的 R 是tcltk在此处的答案中前面提到的支持下编译的,如果您从 arch 存储库安装了它,则应该是这种情况)。