通过复制代码在R中安装包?

时间:2013-08-05 22:00:15

标签: r install package

我必须在没有互联网连接的虚拟机上运行R代码,并且只安装旧版本的R(R 2.10.1)。我想安装LiblineaR包,它最初是为一个比2.10.1更新的R版本创建的。出于这个原因,我无法通过将tar.gz文件安全地复制到虚拟机来安装它,因为tar.gz文件仅适用于较新版本的R。

当我只是尝试复制“LiblineaR”函数的代码时,它也不起作用,因为当我调用该函数时,它会给我消息:

Error in .C("trainLinear", as.double(W), as.double(if (sparse) data@ra else t(data)),  : 
C symbol name "trainLinear" not in load table

有谁知道如何解决这个问题(或错误信息的含义?)

如果我能提供任何额外信息,请告诉我。

3 个答案:

答案 0 :(得分:1)

我将借用Raymond Chen的专利心灵调试权力并说这是不可能的;您要安装的软件包依赖于R 2.10.1中不存在但在R 2.15.2中存在的内置R函数(因此需要)。

该行

C symbol name "trainLinear" not in load table

强烈建议依赖本机C函数。

答案 1 :(得分:1)

这实际上是一个非常简单的修复,我在最后复制了函数定义和行<environment: namespace:data.table>。一旦我没有复制该行,它就有效了。我为创造一个无所事事的骚动道歉。

答案 2 :(得分:0)

您可以在包的src文件夹中找到“trainLinear”功能。要获得提供的C / C ++代码应该不是问题,但是您将面临的下一个问题是包依赖于其他包(例如,请参阅包库中的R代码(“SparseM”)) 并且整个事情再次开始。

如果你解决了所有这些问题,它仍然像埃里克所说,你可能会遇到拖拉R版本功能的问题。

我认为处理互联网问题更容易:)

HTH