如何将xlsx文件(2010)导入到R 2.15.0中
如何将xlsx文件(2010版本)导入R 2.15.0中
在R中,可以使用gdata包中的read.xls函数将xlsx和xls文件读入R中。以下是我经常使用的方法:
1. 将工作目录设置为存放Excel文件的位置:
setwd("F:\\存放Excel文件的文件夹地址")
2. 创建一个包含工作目录下所有文件的列表:
MyFiles <- list.files()
3. 检查列表:
MyFiles
4. 创建一个包含工作目录下所有xls和xlsx文件数据的列表。这相当于批量导入数据的功能:
library(gdata)
Mylist <- lapply(MyFiles, read.xls)
5. 检查是否成功读取了文件夹中的所有文件,以防一些Excel文件损坏等问题。如果结果为FALSE,则表示存在问题:
identical(length(MyFiles), length(Mylist))
6. 使用sapply等函数对文件中的数据进行操作。
另外,当我上传gdata包时,只需要使用以下代码即可解决问题:
a <- read.xls("文件名.xlsx", sheet=3)
我还添加了一些关于批量导入大量Excel文件到R中的细节,这对你也许有用。
另外,昨天我使用gdata包读取xlsx文件时速度非常慢,即使只有一个文件,也需要运行2秒。以下是程序示例:
library("gdata")
for (i in 1:7000){
file.name <- paste("C:/Users/zhen0001/Desktop/Silciscan data/B4E_",i,"_SilviScan_Report.xlsx",sep="")
possibleError=tryCatch(data <- read.xls(file.name,sheet=3),error=function(e) e)
if (inherits(possibleError,"error")) next
a <- min(data[1])
b <- max(data[1])
c <- b - a + 1
d <- c(i,a,b,c)
print(d)
}
你应该另外提一个独立的问题,比如“如何加快导入Excel文件的速度?”
问题的原因是使用了不兼容的Java库,导致无法导入xlsx文件。解决方法是重新安装并匹配R和Java的架构。
文章内容如下:
如何在R 2.15.0中导入xlsx文件(2010版)
有一次我没有使用XLSconnect,但我的学生使用了xlsx包。然后,可以使用read.xlsx或read.xlsx2函数来读取xls表。该包提供了读取和写入xls格式的选项,并且可以读取和写入电子表格中的特定表和特定区域。
我给我的学生(生物学大二学生)唯一的正式指导是电子表格必须“格式良好”(所有项目都是数据而不是公式,第一行是变量名的小写形式,没有非字母字符,并且第2-##行包含每个变量的数据。如果是记录,则同一记录的所有项目都在同一行上)。它并不一定要求*.xls这么严格,但我希望学生们在读取数据文件时遇到最少的问题。
xlsx和XLConnect包使用相同的Java库。但在我看来,XLConnect要好得多(即更好的可用性和更好的库覆盖范围)。
很高兴知道这个,我将会在我的学生中进行调查使用这个工具。
我使用了library("XLConnect"),但显示为false。并且要求我重新安装Java。所以我重新安装了Java,但还是无法运行。加载所需包:XLConnectJars加载所需包:rJava错误:.onLoad failed in loadNamespace() for 'rJava',详情:调用:stop("No CurrentVersion entry in '", key, "'! Try re-installing Java and make sure R and Java have matching architectures.")错误:找不到对象'key'错误:无法加载包‘rJava’
以上是问题出现的原因以及解决方法。重新安装并确保R和Java的架构匹配可以解决此问题。