在R中读取网络文件

12

我正在使用read.csv方法将csv文件导入到R中,但遇到以下错误。

The network path is "\\shared\data\abc.csv"

read.csv("\\shared/data/abc.csv",header=T)
                    or 
read.csv("\\shared\\data\\abc.csv",header=T)

如果我在文件资源管理器中使用复制粘贴地址栏中的地址,它会打开文件,但是R无法读取它。原因是什么?是因为网络名称以"//"开头,而不是像C,D等传统驱动器名称吗?


2
\ 是一个特殊字符,所以需要用另一个 \ 进行转义。如果有两个 \,则两者都需要进行转义才能得到 "\\shared\..."。 - Richard Telford
https://stackoverflow.com/questions/14879204/how-to-escape-a-backslash-in-r#comment20862252_14879204 - Rich Scriven
4个回答

20

每个反斜杠都需要转义,所以对于双反斜杠,您需要四个反斜杠,即

read.csv("\\\\shared\\data\\abc.csv",header=T)

2

此外,以下内容也可行,且不受操作系统限制:

最初的回答

read.csv("//shared/data/abc.csv",header=T)

运行getwd()命令时,请注意文件夹之间的分隔符是正斜杠(/),这也是LinuxMac系统中使用的分隔符。如果您使用的是Windows操作系统,那么正斜杠看起来会很奇怪,因为您习惯于Windows文件夹中的反斜杠(\)。在Windows中工作时,您需要使用正斜杠或使用双反斜杠(\\)进行转义。"最初的回答"

1
使用R的内置文件系统函数:
CSVfile <- file.path('\\\\shared', 'data', 'abc.csv')
read.csv(CSVfile, header=T)`

0
在我尝试上述选项之前,我必须执行一个额外的步骤。我是在Mac上访问PC网络附加存储,这可能会改变您需要输入的斜杠方向。
1. 找到R能够识别的正确文件路径:
RStudio工具-->全局选项 浏览到默认工作目录中的文件夹 复制此文件路径
2. 将文件路径中的每个单斜杠替换为双斜杠(如上所述)
3. 运行read.csv函数
示例: 从文件复制的文件路径:S://servername/data/raw/test.csv 从浏览到相同文件并在RStudio工作目录中显示的文件路径:/Volumes/data/raw/test.csv

read.csv("//Volumes//data//raw//test.csv")


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接