2014-02-24 124 views
7

我正在嘗試導入數據(ods文件),我知道如何導入csv,xls等,但我一直都在拼接。我用包「gnumeric」嘗試過,但R告訴我找不到所需的程序'ssconvert'。誰能幫我?如何在R中導入ods文件

謝謝。

+0

你嘗試安裝ssconvert包? https://mail.gnome.org/archives/gnumeric-list/2013-November/msg00022.html – philshem

+1

我與提問者完全一樣的問題,但我不能安裝ssconvert(沒有這樣的包?)。不幸的是,我不明白答案是「R不在正確的地方尋找ssconvert」。我認爲ssconvert是gnumeric不可或缺的一部分? – Thomas

+0

你在用什麼操作系統? 「正確的地方」通常是確保程序在你的「路徑」中的簡寫,換句話說,可以通過程序調用它來找到。在Linux上,它在安裝gnumeric之後工作順利。 – FvD

回答

18

我寫了一個叫包readODS 具有功能read.ods返回ODS文件作爲data.frames (共名單,每張一張)

它在CRAN上可用,見here

源和錯誤報告在這裏: https://github.com/chainsawriot/readODS

+0

任何更改我們都會得到與R 3.0.2兼容的版本很快?運行'install.packages(「readODS」)''後得到這個消息:「package'readODS'不可用(對於R版本3.0.2)」。 –

+0

我不知道如何爲以前的R版本添加軟件包到CRAN,或者如何檢查我的軟件包可以運行的版本。你可以嘗試自己構建包嗎?我可以找到的所有內容是:'http://cran.r-project.org/web/checks/check_results_readODS.html',並且它通過了所有內容......我向追蹤器添加了一個錯誤報告,但我不確定要用它做tbh('https:// github.com/phonixor/readODS/issues/14')。 – phonixor

+0

也許你應該詳細說明'read.ods'與'read_ods' ;-) – MichaelChirico

0

簡短的回答是:在Linux上安裝的工具,也許在虛擬機中,然後用gnumeric的工作圖書館。在Linux上使用library(gnumeric)與在系統上安裝gnumeric一樣簡單,然後在您使用的R環境中安裝gnumeric軟件包。

事實證明,在Windows或Mac上設置它很困難。

MAC OSX

要設置同樣的事情起來的Mac OSX是一個重大的麻煩。您需要通過macports(這意味着安裝xcode),然後是macports,fink或homebrew獲取gnumeric(電子表格應用程序)。如果您不習慣安裝從Linux移植的軟件,那麼這是一項重大的操作。我知道我無法期望從當前用戶編寫R代碼。

的Windows

你會認爲這是在Windows更容易,因爲有一個gnumeric installer for windows available,並將其安裝在應用程序文件夾ssconvert.exe。但設置PATH變量來找到這個ssconver.exe應用程序顯然是不夠的。 「無法找到ssconvert」問題被讀取表格的其他問題所取代。它的行爲與Linux上的行爲無異。

對於ROpenOffice,類似的問題是基礎問題。 Rcompression軟件包是必需的,但這不是R軟件包,但需要在系統級別提供壓縮技術。在windows/mac上安裝它似乎並不簡單,所以你會遇到與gnumeric類似的問題。

這是一個真正的恥辱,因爲.ods承諾是一個(相對)不錯的中間格式,用於避免Excel文件格式(其中有太多數據)或excel導出(Excel無法一致地處理基於文本的格式,如os之間的csv,no utf-8等)。

2

我在Ubuntu Linux上遇到了確切的問題。這是令人沮喪顯而易見的:

sudo apt-get install gnumeric


碰巧,我有一堆過時的包,並就通了一堆更新它們。 gnumeric庫需要XML庫,並且我的安裝XML庫構建於2.14上,並且我的R不會加載3.0以前生成的任何內容。我不認爲這是你的問題,但如果上述解決方案無效,也許你也可以檢查你的軟件包是否是最新的。任何我通過sudo安裝的東西都必須通過sudo刪除,否則我有權限錯誤。


這是令人沮喪的明顯,因爲該錯誤信息是

Error in read.gnumeric.sheet(file = fname, head = TRUE, sheet.name = "Sheet1") : Required program 'ssconvert' not found.

要強調的是,在http://cran.at.r-project.org/web/packages/gnumeric/gnumeric.pdf包文件說

Requires an external program, 'ssconvert' (normally installed with 'gnumeric' (http://projects.gnome.org/gnumeric/) in 'PATH'.

你怎麼ssconvert?再一次,令人沮喪的是:它通常使用gnumeric進行安裝。進入命令行,然後鍵入ssconvert,它會提醒你的是:

[email protected]:~$ ssconvert
The program 'ssconvert' is currently not installed. You can install it by typing: sudo apt-get install gnumeric

我查了一下,ssconvert不依賴軟件(比如gnumeric-common),它在適當的gnumeric,所以你必須安裝完成gnumeric包:

sudo apt-get install gnumeric