gpt4 book ai didi

r - 无法从 R 读取 .xls

转载 作者:行者123 更新时间:2023-12-04 21:16:34 24 4
gpt4 key购买 nike

  • 文件:它是一个大约 100 行 7 列的文件。 XLS 扩展 (MS Excel 97-2003)。
  • 问题:无法通过 read.xlsx 使用 R 读取文件或 read.xlsx2 .
  • 用于尝试读取文件的代码:
    library(xlsxjars)
    library(rJava)
    library(xlsx)
    excel <- read.xlsx("File.xls",sheetIndex=1,startRow=1,stringsAsFactor=F)
  • 错误提示:

  • Error in .jcall ("RJavaTools","Ljava/lang/object;","invokeMethod",cl, : java.lang.IllegalArgumentException: Your InputStream was neither an OLE2 stream, nor an OOXML stream.



    PD:作为记录,我确实尝试使用 read.csv 阅读它。它确实读取了它,但由于它是一个 Excel 文件并且它没有用逗号或点分隔,R 读取它就好像所有内容都在 1 列中一样。也许任何人都可以建议一种方法来阅读它 read.csv ?

    最佳答案

    您所说的有两件事让我认为您没有处理您认为正在处理的文件类型:

  • Your InputStream was neither an OLE2 stream, nor an OOXML stream"
  • "I did try to read it with read.csv() and it does read it ..."


  • 如果它确实是 MS Excel 97-2003 原生格式的文件, read.csv根本不会工作。来自 read.xlsx 的错误支持这一点。这似乎是一个文本文件,您的评论使用 sep="\t"read.table允许它被正确读取确认它。你所拥有的是一个制表符分隔的文本文件,它恰好有后缀 .xls .

    应该注意的是,文件的后缀并不能保证文件是声称的格式。一个更好的指标正在运行 file shell 命令(如果该命令在您的操作系统上可用)。 GUI 有时使用文件扩展名来确定使用哪个应用程序打开文件。由于 Excel 能够读取制表符分隔的文件(并且因为 Excel 可能未设置为 .tsv 文件的默认应用程序,这将是更传统的文件扩展名),通过使用 .xls扩展名,文件将(通常)由 Excel 打开。

    总之,只是因为文件名以 .xls 结尾并不意味着它真的是 Excel 原生格式文件。

    关于r - 无法从 R 读取 .xls,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27080369/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com