我必须在没有互联网连接的虚拟机上运行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
有谁知道如何解决这个问题(或错误信息的含义?)
如果我能提供任何额外信息,请告诉我。
答案 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