2013-08-05 53 views
0

我必須在沒有互聯網連接的虛擬機上運行R代碼,並且只安裝舊版R(R 2.10.1)。我想安裝LiblineaR軟件包,該軟件包最初是爲比2.10.1更新的R版本創建的。因爲這個原因,我不能通過將tar.gz文件安全地複製到虛擬機來安裝它,因爲tar.gz文件僅適用於較新版本的R.通過複製代碼在R中安裝包?

當我只是簡單地嘗試複製對於「LiblineaR」功能的代碼,它也不起作用,因爲當我調用該函數,它給我的留言:

Error in .C("trainLinear", as.double(W), as.double(if (sparse) [email protected] else t(data)), : 
C symbol name "trainLinear" not in load table 

有誰知道我怎麼能解決這個(或什麼錯誤信息手段?)

讓我知道我是否可以提供任何額外的信息。

+0

爲什麼你有'沒有互聯網連接的虛擬機'? – agstudy

+0

您已經安裝了構建鏈工具,並且正確編譯了該軟件包? –

+0

當你甚至沒有提到操作系統時,你希望得到具體的建議嗎? –

回答

1

這實際上是一個非常簡單的修復,我與在最後行<environment: namespace:data.table>一起復制功能定義工作。一旦我沒有複製該行,它的工作。我爲造成一無所有的騷動而道歉。

1

我要借用雷蒙德陳的專利心靈調試權力,並說這是不可能的;你想要安裝的軟件包依賴於R 2.10.1中不存在但R 2.15.2中存在的內置R函數(因此是需求)。

C symbol name "trainLinear" not in load table 

強烈暗示上的本機C函數的依賴關係。

0

您可以在包的src文件夾中找到「trainLinear」函數。要獲取提供的C/C++代碼不應該是問題,但您將面臨的下一個問題是該程序包也依賴於其他程序包(例如,請參閱程序包庫中的R代碼(「SparseM」) )以及整體事情再次啓動。

如果你解決了所有這些問題,它仍然像埃裏克說的那樣,你可以在構建兩個R版本的函數時遇到問題。

我覺得它更容易在互聯網上的問題:)

HTH