关于如何有效地将任何类型的外部包加载到R中,我有一个一般性的问题。我发现许多详细说明这些信息的来源都是不够的,但我将省略提及这些各自的URL。我以前已经成功地将外部包加载到R中,但是加载fgui
包时遇到了困难。
在我的具体情况下,我不能将库fgui
加载到R中。首先,我使用命令直接从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’
我检查了"试图在R中加载库(Ggplot2)时出错“的帖子,但它没有回答我的问题。
请帮助我提出任何建议,让包fgui
在R Studio中正常工作,并自由地解决有效地将外部包加载到R中的更普遍的问题。
发布于 2014-08-09 14:15:02
tcltk
不是一个典型的包。它可能已经安装在您的系统上,并且不能使用通常的install.packages
过程安装,因为它不在CRAN上(就像R附带的基本包,比如stats
等等)。而且,tcltk2
与tcltk
不一样;它是一个扩展(并依赖于) tcltk
功能的包。
所以,从以下几个方面开始:
> capabilities("tcltk")
tcltk
TRUE
如果返回到FALSE
,这意味着您的R不是用tcltk支持构建的。你没有说你使用的是什么操作系统,所以帮助你有点困难。
也就是说,如果您使用的是Linux,则需要重新构建R 有tcltk支持。这应该是相对简单的。基本上,确保Tcl和tk在您的系统上可以在一个标准位置(类似于sudo apt-get install tcl8.5-dev tk8.5-dev
)可用,然后按照通常的步骤重建R。
如果您使用的是Mac ,则会遇到与John Fox在这里描述了与Rcmdr有关的内容。相同的错误。简而言之,这可能是两件事中的一件:
如果系统命令的输出与上述类似,则应该转到终端并执行以下操作:sudo chmod -R a+rX /usr/local
并输入密码以更改目录权限。
它也可以通过创建一个符号链接如本答案所述来解决。
除非您在没有tcl/tk支持的情况下从源代码中构建R,否则在上永远不会出现这种情况。
发布于 2016-01-15 23:51:12
发布于 2019-08-04 17:47:18
在Arch上,tk
是一个独立于tcl
的包,两者都需要安装:
sudo pacman -S tcl tk
这是假定来自R的capabilities("tcltk")
输出是TRUE
(这意味着您的R是用tcltk
支持编译的,正如前面在这里的答案中所指出的,如果您从arch repos安装它,应该是这样的)。
https://stackoverflow.com/questions/25212800
复制相似问题