【发布时间】:2014-09-10 12:11:52
【问题描述】:
我正在尝试将一些“.xls”加载到 R 中。该文件夹包含 8 个 .XLS 文件和 8 个 .csv 文件,这些文件是我通过手动打开 .xls 文件并另存为 .csv 来制作的。我意识到我可以使用 gdata 包中的 read.xls() 直接加载 .xls 文件,这很有帮助,因为数据是以 .xls 格式接收的。但是,当我在 3 个最新的 .xls 文件中使用 list.files() 时,列表中会丢失。然而,它们相关的 .csv 文件也包括在内。如果我打开文件并将它们转换为 .xls 然后再次运行list.files(),它们会出现,如果我在资源管理器中重命名它们,当我再次运行list.files 时它们不会出现。 Excel 文件可能来自不同地区的 Excel 版本,因为它们来自不同国家的办公室,但我不认为这会产生影响。
文件已通过电子邮件发送给我,因此作为实验,我创建了一个新文件夹并将文件从 Outlook 保存到新文件夹,运行 list.files() 时的结果是相同的,当我转换它们时也是如此。
list.files(getwd())
返回
character(0)
如果我使用list.files( getwd() ) 或指定文件扩展名,这没有区别。
我想知道我缺少什么,这样我就可以避免在运行脚本时必须单独打开每个文件或冒丢失文件的风险。
抱歉这个问题无法重现。
编辑
在 Jbaum 的建议下,运行了以下代码并返回了结果
shell(sprintf('dir /b %s', normalizePath(getwd())), intern=TRUE)
[1] "'\\\\\\ **File path**'"
[2] "CMD.EXE was started with the above path as the current directory."
[3] "UNC paths are not supported. Defaulting to Windows directory."
[4] "The system cannot find the file specified."
attr(,"status")
[1] 1
Warning message:
running command 'C:\WINDOWS\system32\cmd.exe /c dir /b \\\\ **File path**' had status 1
注意:我已将文件路径替换为**文件路径**,并将反斜杠的数量增加了一倍,因此它们显示为 R
【问题讨论】:
-
你
setwd正确吗?getwd是否返回预期路径? -
是 getwd 返回预期的路径。重要的是要记住 files.list 返回 一些 但不是所有文件,当文件被转换时,它们会被列出,如果路径不正确,就不会发生这种情况。
-
list.files(all.files=TRUE)的结果是什么? -
返回相同但添加了“。”和“..”
-
system(sprintf('ls %s', getwd()), intern=TRUE)怎么样? (确保getwd()返回包含感兴趣文件的路径。)