如何将xlsx文件(2010)导入到R 2.15.0中

13 浏览
0 Comments

如何将xlsx文件(2010)导入到R 2.15.0中

我们有超过7000个.xlsx(2010)格式的Excel数据文件。我的R版本是R 2.15.0。\n如果我手动操作将xlsx转换为xls、.cvs或txt格式,将会花费更多时间。

0
0 Comments

如何将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文件的速度?”

0
0 Comments

问题的原因是使用了不兼容的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的架构匹配可以解决此问题。

0