2014-02-24 91 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