将Excel文件导入R、xlsx或xls
有人能帮我找到将Excel2007(.xlsx)文件导入R的最佳方法吗?我试过几种方法,但似乎都不管用。我已经升级到2.13.1、windows XP、xlsx 0.3.0,我不知道为什么会不断出现错误。我试过:将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阅读工作簿。如果工作表格
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]