我在Windows上运行R,并在桌面上有一个csv文件。我按如下方式加载它,
x<-read.csv("C:\Users\surfcat\Desktop\2006_dissimilarity.csv",header=TRUE)
但R给出以下错误消息
错误:'\ U'在没有以十六进制数字开头的字符串中使用“C:\ U”
那么加载此文件的正确方法是什么。我正在使用Vista
答案 0 :(得分:115)
将所有\
替换为\\
。
它正试图逃避U
的下一个字符,因此要插入\
,您需要插入一个\
的转义\\
答案 1 :(得分:27)
请不要将此回复标记为正确,因为smitec已正确回答。我在我的第一个库中包含了一个便利函数,它将windows路径转换为在R中工作的格式(Sacha Epskamp描述的方法)。只需将路径复制到剪贴板(ctrl + c),然后将该函数作为pathPrep()
运行。不需要争论。路径正确打印到控制台并写入剪贴板,以便轻松粘贴到脚本。希望这有用。
pathPrep <- function(path = "clipboard") {
y <- if (path == "clipboard") {
readClipboard()
} else {
cat("Please enter the path:\n\n")
readline()
}
x <- chartr("\\", "/", y)
writeClipboard(x)
return(x)
}
答案 2 :(得分:8)
<强>解决方案强>
试试这个:x <- read.csv("C:/Users/surfcat/Desktop/2006_dissimilarity.csv", header=TRUE)
<强>解释强>
R无法正确理解正常的Windows路径,因为"\"
具有特殊含义 - 它用作转义字符,为后续字符赋予特殊含义(\n
换行,\t
对于制表符,\r
表示回车,...,have a look here)。
因为R不知道它抱怨的序列\U
。只需将"\"
替换为"/"
或使用额外的"\"
即可使"\"
脱离其特殊含义,一切顺利。
<强>替代强>
在Windows上,我认为使用R中的Windows特定路径改善工作流程的最佳方法是使用例如AutoHotkey允许自定义热键:
AutoHotkey代码段 (link to homepage)
^+v::
StringReplace, clipboard, clipboard, \, /, All
SendInput, %clipboard%
答案 3 :(得分:4)
My Solution用于定义RStudio snippet,如下所示:
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(`INPUT PARAMETER`);
此代码段将反斜杠snippet pp
"`r gsub("\\\\", "\\\\\\\\\\\\\\\\", readClipboard())`"
转换为双反斜杠\
。如果您希望将反斜杠转换为正斜杠\\
,则可以使用以下版本。
/
定义首选代码段后,键入 p - p - TAB - ENTER <从剪贴板粘贴路径/ kbd>(即pp然后是tab键然后输入),路径将被神奇地插入R友好分隔符。
答案 4 :(得分:1)
在包含文本挖掘(语音,简报等)数据的txt文件的情况下处理此问题的最佳方法是替换&#34; \&#34;用&#34; /&#34;。
示例:
file<-Corpus(DirSource("C:/Users/PRATEEK/Desktop/training tool/Text Analytics/text_file_main"))
答案 5 :(得分:1)
在运行Windows机器时用正斜杠替换反斜杠\
答案 6 :(得分:1)
我知道这确实很老,但是如果您仍然要复制和粘贴,则可以使用:
read.csv(readClipboard())
readClipboard()为您转义反斜杠。只要记住确保副本中包含“ .csv”即可,也许与此:
read.csv(paste0(readClipboard(),'.csv'))
如果您真的想最小化键入,可以使用一些功能:
setWD <- function(){
setwd(readClipboard())
}
readCSV <- function(){
return(readr::read_csv(paste0(readClipboard(),'.csv')))
}
#copy directory path
setWD()
#copy file name
df <- readCSV()
答案 7 :(得分:0)
我认为R正在阅读&#39; \&#39;在字符串中作为转义字符。例如\ n在字符串中创建一个新行,\ t在字符串中创建一个新选项卡。
&#39; \&#39;因为R会认为这是一个正常的反斜杠,所以会有效。
答案 8 :(得分:0)
用正斜杠代替反斜杠在Windows上对我来说很有效。
答案 9 :(得分:0)
readClipboard()
也可以直接使用。将路径复制到剪贴板中
C:\Users\surfcat\Desktop\2006_dissimilarity.csv
然后
readClipboard()
显示为
[1] "C:\\Users\\surfcat\\Desktop\\2006_dissimilarity.csv"
答案 10 :(得分:-3)
一种简单的方法是使用python。 在python终端类型
R “C:\用户\ surfcat \桌面\ 2006_dissimilarity.csv” 你会回来的 'C:\用户\ surfcat \桌面\ 2006_dissimilarity.csv'