【问题标题】:Importing to R an Excel file saved as web-page将保存为网页的 Excel 文件导入 R
【发布时间】:2018-07-24 01:02:50
【问题描述】:

我想打开一个使用 R 保存为网页的 Excel 文件,但我不断收到错误消息。

所需的步骤是:
1) 将文件上传到 RStudio
2) 将格式更改为数据框/tibble
3) 将文件另存为 xls

我在 Excel 中打开文件时收到的消息是文件格式(excel 网页格式)和扩展格式 (xls) 不同。我尝试了this answer 中的步骤,但无济于事。如果有任何帮助,我将不胜感激!

【问题讨论】:

  • 没有看到您使用的代码和您收到的确切错误消息,就几乎没有机会获得有意义的帮助。
  • 这是什么意思:打开保存为网页的 Excel 文件?打开一个 HTML 页面?

标签: r excel


【解决方案1】:

如果没有指向实际文件的链接,我不希望任何人能够给您一个明确的答案。复杂之处在于,许多服务会将文件写为 .xls 或 .xlsx,而它们不是有效的 Excel 格式。这样做是因为 Excel 如此普遍,一些非技术人员对使用 Excel 文件比使用 csv 文件更有信心。现在,文件将以 Excel 可以处理的格式存储(因此您的警告消息),但 R 的库更严格,看不到他们期望的实际文件类型,所以他们失败了。

也就是说,当我上次遇到此问题时,以下步骤对我有用。服务正在输出 .xls 文件实际上只是以 .xls 文件扩展名保存的 HTML 表格。

1) 下载文件以在本地使用它。您当然可以编写脚本,例如download.file(),但此步骤有助于消除直接使用网页或连接所涉及的其他错误。

2) 从 XML 包中加载带有readHTMLTable() 的完整文件

library(XML)
dTemp = readHTMLTable([filename], stringsAsFactors = FALSE)

这将返回一个数据框列表。您的结果集很可能是第二个元素或更晚的元素(请参阅 ?readHTMLTable 以获取带有说明的示例)。您可能需要在这里试验并探索列表结构,因为它可能有嵌套列表。

3) 提取相关列表元素,例如

df = dTemp[2]

您还提到将最终数据帧写为 xls 文件,这表明您需要旧式格式。为此,我建议使用软件包 WriteXLS

【讨论】:

    【解决方案2】:

    我严重怀疑 Excel 是否“另存为网页”。我很确定该文件只是位于服务器上,您所要做的就是去获取它。某些类型的文件(特别是 Excel 和 h5)是二进制文件而不是文本文件。这需要一个额外的设置来警告 R 它是一个二进制文件并且应该被适当地处理。

    myurl <- "http://127.0.0.1/imaginary/file.xlsx"
    download.file(url=myurl, destfile="localcopy.xlsx", mode="wb")
    

    或者,使用下载器,以及类似这样的东西。

    myurl <- "http://127.0.0.1/imaginary/file.xlsx"
    download(myurl, destfile="localcopy.csv", mode="wb")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-16
      • 2012-05-11
      • 2023-03-31
      • 2021-07-19
      • 2017-01-31
      • 1970-01-01
      • 2019-03-06
      相关资源
      最近更新 更多