【问题标题】:Programmatically load files以编程方式加载文件
【发布时间】:2014-05-26 13:22:39
【问题描述】:

当我想将文件加载到 R 中时,有什么方法可以以编程方式(或半编程方式)而不是手动复制粘贴路径并将 \ 切换到 / 以便 R 可以读取它(因为\ 是 R 中的转义字符)

@Roland 提到的一种方法是使用scan

list.files(scan(file=file(description = "clipboard"), what = "character", allowEscapes = FALSE))

如果路径包含空格,则需要修改

“C:\Users\David Arenburg\”

【问题讨论】:

  • 尽可能使用/。如果你有包含\ 的来源,你可以使用normalizePath

标签: r windows


【解决方案1】:

normalizepath也许是你要找的东西:

> normalizePath(c(R.home(), tempdir()))
[1] "C:\\Program Files\\R\\R-3.1.0"                    
[2] "C:\\Users\\john\\AppData\\Local\\Temp\\RtmpysKuFi"
> normalizePath(c(R.home(), tempdir()), winslash = '/')
[1] "C:/Program Files/R/R-3.1.0"                 
[2] "C:/Users/john/AppData/Local/Temp/RtmpysKuFi"

如果您在 Windows 上并且在复制和粘贴文件路径时遇到问题,请使用 readClipboard。例如,我从 windows 文件夹复制文件路径,使其位于剪贴板上,然后我可以使用:

> readClipboard()
[1] "C:\\Users\\john\\AppData\\Local\\Temp"

然后您可以使用 `normalizePath 来更正 Windows 风格的路径。

【讨论】:

  • 我需要解析normalizePath 的路径而不将其存储在某处的问题。这就是我从文件目录复制粘贴它的原因。我正在寻找像 normalizePath(path = "C:\Users\") 这样不起作用的东西
  • 为什么不能在某处存储路径?
  • 'c:/users/david' 在 Windows 中有效。存放目录路径,list.files,读入数据,???
  • @DavidArenburg 也许更改标题以反映其从剪贴板复制路径的 Windows 问题,否则标题可能会误导其他人。
  • 已更改。但我实际上希望 Linux 用户也可以分享他们的方法等问题
【解决方案2】:

如果您想将其路径名转换为 R 的正斜杠,也许可以使用 choose.files() 来选择文件,然后使用 normalizePath()。

【讨论】:

  • 我对@9​​87654321@很熟悉,但我不想每次打开脚本时都手动执行此操作。
猜你喜欢
  • 2014-01-31
  • 2015-08-12
  • 2012-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-02
  • 1970-01-01
相关资源
最近更新 更多