Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Excel文件导入R、xlsx或xls_R_Xlsx_Xls - Fatal编程技术网

将Excel文件导入R、xlsx或xls

将Excel文件导入R、xlsx或xls,r,xlsx,xls,R,Xlsx,Xls,有人能帮我找到将Excel2007(.xlsx)文件导入R的最佳方法吗?我试过几种方法,但似乎都不管用。我已经升级到2.13.1、windows XP、xlsx 0.3.0,我不知道为什么会不断出现错误。我试过: AB<-read.xlsx("C:/AB_DNA_Tag_Numbers.xlsx","DNA_Tag_Numbers") 谢谢。更新 由于下面的答案现在有些过时,我只想提请大家注意readxl包。如果Excel工作表格式良好,我现在可以使用readxl阅读工作簿。如果工作表格

有人能帮我找到将Excel2007(.xlsx)文件导入R的最佳方法吗?我试过几种方法,但似乎都不管用。我已经升级到2.13.1、windows XP、xlsx 0.3.0,我不知道为什么会不断出现错误。我试过:

AB<-read.xlsx("C:/AB_DNA_Tag_Numbers.xlsx","DNA_Tag_Numbers")
谢谢。

更新 由于下面的答案现在有些过时,我只想提请大家注意readxl包。如果Excel工作表格式良好,我现在可以使用readxl阅读工作簿。如果工作表格式不好,我仍然会导出到CSV,然后通过
read.CSV()
或普通的
readLines()
在R中处理问题

起初的 我的首选方法是将单个Excel工作表保存在逗号分隔值(CSV)文件中。在Windows上,这些文件与Excel关联,因此您不会失去在Excel中双击打开的“功能”

可以使用
read.CSV()
将CSV文件读入R,或者,如果您所在的位置或使用的计算机设置了一些欧洲设置(其中
用作小数点),则可以使用
read.csv2()

这些函数具有合理的默认值,使读取适当格式的文件变得简单。只需在第一行或第一列保留样本或变量的标签即可


在CSV中存储文件的附加好处是,由于文件是纯文本,因此可以非常轻松地传递,您可以确信它们将在任何地方打开;查看或编辑数据不需要Excel。

如果导出到OpenDocument电子表格文件(ods),则可以保留多个选项卡和更多格式信息或者使用较旧的Excel格式,并使用或您上面提到的Excel阅读器导入。

我肯定会尝试
gdata
包中的
read.xls
功能,它比
xlsx
包成熟得多。如果您遇到相同的问题,并且R给您一个错误——找不到函数“.jnew”——则可能需要Perl…

,只需安装库rJava即可。或者,如果您已经有了它,只需运行行库(rJava)。这应该是问题所在


此外,大家都应该清楚,csv和txt文件更容易使用,但生活并不容易,有时你只需要打开一个xlsx

您也可以尝试XLConnect软件包。我的运气比xlsx好(而且它也可以读取.xls文件)

库(XLConnect)

数据示例2012:

library("xlsx")
FirstTable <- read.xlsx("MyExcelFile.xlsx", 1 , stringsAsFactors=F)
SecondTable <- read.xlsx("MyExcelFile.xlsx", 2 , stringsAsFactors=F)
    library(rio)
    AB <- import("C:/AB_DNA_Tag_Numbers.xlsx")
    AB <- AB[,1]
库(“xlsx”)

FirstTable您的操作系统是什么?您正在运行哪个版本的R:32位还是64位?您安装了什么版本的Java

当我第一次开始使用
read.xlsx()
函数时,我也遇到了类似的错误,并发现我的问题(可能与您的问题有关,也可能与您的问题无关;至少,此响应应被视为“也尝试一下”)与.xlsx pacakge与64位Java的不兼容性有关。我相当肯定.xlsx包需要32位Java


使用32位R并确保安装了32位Java。这可能会解决您的问题

这个新包装看起来不错
它不需要rJava,并且使用“Rcpp”来提高速度。

我最近发现了Schaun Wheeler将excel文件导入R的功能,因为我意识到xlxs软件包没有针对R 3.1.0进行更新

文件名需要具有“.xlsx”扩展名,并且在运行该函数时无法打开该文件

此功能对于访问其他人的工作非常有用。使用read.csv函数的主要优点是

  • 导入多个excel文件
  • 导入大文件
  • 定期更新的文件
使用read.csv函数需要手动打开和保存每个Excel文档,这既耗时又枯燥。因此,使用Schaun的功能来自动化工作流是一个巨大的帮助

这是Schaun解决方案的一大支柱


您已检查R是否确实能够找到该文件,例如file.exists(“C:/AB\u DNA\u Tag\u Numbers.xlsx”)?-本·博尔克2011年8月14日23:05

上述评论应该已经解决了您的问题:

require("xlsx")
read.xlsx("filepath/filename.xlsx",1) 

在这之后应该可以正常工作。

对于没有复杂外部依赖关系的解决方案*,现在有:

readxl软件包使得从Excel中获取数据并将数据输入R变得非常容易。 与许多现有软件包(例如gdata、xlsx、, xlsReadWrite)readxl没有外部依赖项,因此很容易 安装并在所有操作系统上使用。它的设计目的是与 表格数据存储在一张表中

Readxl支持传统的.xls格式和现代的基于xml的格式 .xlsx格式。使用libxls C库可以实现xls支持, 它抽象掉了底层二进制文件的许多复杂性 格式。为了解析.xLSX,我们使用了RAPIDXML C++库。 它可以按如下方式安装:

install.packages("readxl") # CRAN version

用法

*严格来说,这不是真的,它需要,这反过来又需要Rtools(对于Windows)或Xcode(对于OSX),它们是R外部的依赖项。但是它们不需要对路径等进行任何修改,因此这比Java和Perl依赖项更具优势


更新现在有了软件包。这保证了从Excel文件中获取Excel格式、函数和许多其他类型的信息,并将其输入到R中。

对于我来说,openxlx软件包以最简单的方式工作

install.packages("openxlsx")
library(openxlsx)
rawData<-read.xlsx("your.xlsx");
install.packages(“openxlsx”)
库(openxlsx)

rawData正如这里很多人所说,我写的是同样的东西,但还有一点

首先,我们需要确保R Studio安装了以下两个软件包:

  • “readxl”
  • “XLConnect”
  • 要在R中加载程序包,您可以使用以下功能:

    install.packages("readxl/XLConnect")
    library(XLConnect)
    search()
    
    搜索将显示当前包的列表
    install.packages("readxl") # CRAN version
    
    devtools::install_github("hadley/readxl") # development version
    
    library(readxl)
    
    # read_excel reads both xls and xlsx files
    read_excel("my-old-spreadsheet.xls")
    read_excel("my-new-spreadsheet.xlsx")
    
    # Specify sheet with a number or name
    read_excel("my-spreadsheet.xls", sheet = "data")
    read_excel("my-spreadsheet.xls", sheet = 2)
    
    # If NAs are represented by something other than blank cells,
    # set the na argument
    read_excel("my-spreadsheet.xls", na = "NA")
    
    install.packages("openxlsx")
    library(openxlsx)
    rawData<-read.xlsx("your.xlsx");
    
    install.packages("readxl/XLConnect")
    library(XLConnect)
    search()
    
        library(rio)
        AB <- import("C:/AB_DNA_Tag_Numbers.xlsx")
        AB <- AB[,1]