在R中指定文件路径字符串时是否可以使用前缀来忽略转义字符?
例如,如果我想example.csv在使用Windows时读取文件,我需要手动更改\为/或\\.例如,
'E:\DATA\example.csv'
Run Code Online (Sandbox Code Playgroud)
变
'E:/DATA/example.csv'
data <- read.csv('E:/DATA/example.csv')
Run Code Online (Sandbox Code Playgroud)
在python我可以使用前缀我的字符串,r以避免这样做(例如r'E:\DATA\example.csv').是否有类似的命令R,或者我可以用来避免出现此问题的方法.(我在windows,mac和linux之间移动 - 这只是windows OS上的一个问题).
And*_*rie 38
您可以使用file.path独立于操作系统构建正确的文件路径.
file.path("E:", "DATA", "example.csv")
[1] "E:/DATA/example.csv"
Run Code Online (Sandbox Code Playgroud)
还可以使用以下命令将文件路径转换为操作系统的规范表单normalizePath:
zz <- file.path("E:", "DATA", "example.csv")
normalizePath(zz)
[1] "E:\\DATA\\example.csv"
Run Code Online (Sandbox Code Playgroud)
但是直接回答你的问题:我不知道使用R忽略转义序列的方法.换句话说,我不相信可以从Windows复制文件路径并将其直接粘贴到R.
但是,如果你真正想要的是一种从Windows剪贴板复制和粘贴并获得有效R字符串的方法,请尝试 readClipboard
例如,如果我从Windows资源管理器复制文件路径,然后运行以下代码,我会得到一个有效的文件路径:
zz <- readClipboard()
zz
[1] "C:\\Users\\Andrie\\R\\win-library\\"
Run Code Online (Sandbox Code Playgroud)
1)如果E:\DATA\example.csv在剪贴板上,则执行以下操作:
example.csv <- scan("clipboard", what = "")
## Read 1 item
example.csv
## [1] "E:\\DATA\\example.csv"
Run Code Online (Sandbox Code Playgroud)
现在,您可以将"E:\\DATA\\example.csv"上面的输出复制到剪贴板上,然后将其粘贴到源代码中,如果您需要对路径进行硬编码.
如果E:\DATA\example.csv在文件中,则类似的备注适用.
2)如果文件存在,那么另外要尝试的是:
example.csv <- file.choose()
Run Code Online (Sandbox Code Playgroud)
然后导航到它并继续如上面的1)(除了file.choose行替换scan那里的语句).
3)请注意,read.csv在Windows上需要将反斜杠更改为正斜杠是不正确的,但如果出于某种原因你确实需要进行该转换,那么如果该文件存在则会将反斜杠转换为正斜杠(但如果有的话)不存在然后它会发出恼人的警告,所以你可能想要使用下面的其他方法之一):
normalizePath(example.csv, winslash = "/")
Run Code Online (Sandbox Code Playgroud)
并且即使文件不存在,这些也会将反斜杠转换为正斜杠:
gsub("\\", "/", example.csv, fixed = TRUE)
## [1] "E:/DATA/example.csv"
Run Code Online (Sandbox Code Playgroud)
要么
chartr("\\", "/", example.csv)
## [1] "E:/DATA/example.csv"
Run Code Online (Sandbox Code Playgroud)
编辑:添加更多信息normalizePath.
小智 7
现在可以使用 R 版本 4.0.0。查看?Quotes更多。
例子
r"(c:\Program files\R)"
## "c:\\Program files\\R"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27802 次 |
| 最近记录: |