【发布时间】:2021-11-18 04:49:39
【问题描述】:
基本上,每天早上都会通过电子邮件将一些 Excel 报告发送给我们。我将它们直接下载到指定的驱动器,然后在 R 中进行处理。
问题是在 R 中运行我的脚本之前,我必须手动打开每个文件并保存它们。如果不是这样,就会发生这种情况:
当我进入并手动打开并保存文件并重新运行我的脚本时。我得到正确的结果:
首先,你们知道为什么会这样吗?其次,是否有一个功能可以让我打开这些文件并保存它们。我确实尝试过openxlsx。但是,我仍然需要手动按下保存按钮。
这是我为引入文件而创建的函数:
store.FUN = function(x)
{
m = as.data.frame(read_excel(file))
names(m) = c(1:length(m))
m[1, 1] = str_sub(m[2, 1], 13)
m = bind_rows((m)[1, ], subset(m, (m)[1] == "Total Income"))
m[2, 1] = m[2, 2]
m = m[-c(2)]
return(m)
}
district_1.stores = sapply(store.file, store.FUN, simplify=FALSE) %>%
bind_rows(.id = "Store ID")
谢谢!
编辑:所以看起来单元格是公式化的:
但是,如果我什么都不做,只保存文件并返回 R 执行脚本,那么数字就可以了。
这里是一个excel文件的例子: enter image description here
【问题讨论】:
-
"手动打开每个文件" --> 这是否意味着您在 Excel 中打开通过电子邮件发送给您的 excel 文件,并将其保存到新的 xlsx 文件中?而且这个版本能正确读入R,而你收到的版本却没有?
-
请显示您用来打开文件的代码。有几个不同的包可以帮助处理 excel 文件,它们可能与您正在使用的示例不同。您知道生成 excel 文件的计算机/软件是什么类型的吗?
-
因此 quickbooks 会为我们的一些商店发送每日损益表。如果我只是右键单击并将它们保存到驱动器中而不打开文件,R 会将这些值读取为零。但是,如果我打开文件并只是简单地保存它并重新运行脚本,R 就能够读取这些值。要将文件导入 R,我只需使用 read_excel。
-
嗯,excel文件中的单元格是公式还是实际值?这些是启用宏的工作簿吗?
-
这里深入探讨了在 R 中打开 excel 文件的不同方法。这些替代方法中的任何一个更适合您吗? lgreski.github.io/dsdepot/2020/06/13/reading-Excel-files.html。我认为 XLConnect 或 xlsx 更有可能评估公式。