【发布时间】:2014-11-22 17:35:26
【问题描述】:
- 文件:它是一个大约有 100 行和 7 列的文件。 XLS 扩展 (MS Excel 97-2003)。
- 问题:无法通过
read.xlsx或read.xlsx2使用R 读取文件。 -
用于尝试读取文件的代码:
library(xlsxjars) library(rJava) library(xlsx) excel <- read.xlsx("File.xls",sheetIndex=1,startRow=1,stringsAsFactor=F) 错误提示:
.jcall ("RJavaTools","Ljava/lang/object;","invokeMethod",cl,中的错误:java.lang.IllegalArgumentException:您的 InputStream 既不是 OLE2 流,也不是 OOXML 流。
PD:作为记录,我确实尝试使用read.csv 读取它,它确实读取了它,但由于它是一个 Excel 文件并且它没有用逗号或点分隔,R 读取它就好像所有内容都在 1 列中一样。也许任何人都可以建议一种通过read.csv阅读它的方法?
【问题讨论】:
-
调整
read.csv中的sep参数或使用read.table -
你会使用什么 sep?在 Excel 中,它由列分隔,而不是任何符号...
-
使用空格
sep = " "或可能使用制表符sep = "\t" -
sep="\t" 解决了!谢谢!!
-
听起来您实际上并不是 XLS 格式的文件(OOXML 和 BIFF(?) 都不是),而是制表符分隔的文本文件。有一个技巧,即为 excel 可以理解的格式的文件赋予
.xls扩展名,以便当您通过 GUI 打开它时打开 Excel。尝试在文本编辑器中查看该文件以查看其真实内容(或使用file命令行实用程序,如果它存在于您的操作系统中)。