Ответ 1
замените все \
на \\
.
он пытается избежать следующего символа в этом случае U
, поэтому для вставки \
вам нужно вставить escape-код \
, который равен \\
Я запускаю R в Windows и имею файл csv на рабочем столе. Я загружаю его следующим образом:
x<-read.csv("C:\Users\surfcat\Desktop\2006_dissimilarity.csv",header=TRUE)
но R дает следующее сообщение об ошибке
Ошибка: '\ U' используется без шестнадцатеричных цифр в символьной строке, начиная с "C:\U"
Итак, какой правильный способ загрузить этот файл. Я использую Vistap >
замените все \
на \\
.
он пытается избежать следующего символа в этом случае U
, поэтому для вставки \
вам нужно вставить escape-код \
, который равен \\
Пожалуйста, не отмечайте этот ответ так же корректно, как smitec уже правильно ответил. Я включаю функцию удобства, которую я храню в своей .First библиотеке, которая преобразует путь Windows в формат, который работает в R (методы, описанные Sacha Epskamp). Просто скопируйте путь в буфер обмена (ctrl + c), а затем запустите функцию как pathPrep()
. Нет необходимости в аргументе. Путь печатается на консоль правильно и записывается в буфер обмена для удобства вставки в script. Надеюсь, что это будет полезно.
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)
}
Решение
Попробуйте следующее: x <- read.csv("C:/Users/surfcat/Desktop/2006_dissimilarity.csv", header=TRUE)
Объяснение
R не может правильно понять нормальные пути Windows, потому что "\"
имеет особый смысл - он используется как escape-символ, чтобы придать следующие символы особым значениям (\n
для новой строки, \t
для вкладки, \r
для возврата каретки,..., смотрите здесь).
Поскольку R не знает последовательности \U
, она жалуется. Просто замените "\"
на "/"
или используйте дополнительный "\"
, чтобы избежать "\"
из его специального значения, и все работает плавно.
Alternative
В окнах я считаю, что лучше всего улучшить рабочий процесс с помощью конкретных путей Windows в R, чтобы использовать, например. AutoHotkey, который позволяет настраивать горячие клавиши:
Фрагмент кода AutoHotkey (ссылка на главную страницу)
^+v::
StringReplace, clipboard, clipboard, \, /, All
SendInput, %clipboard%
Мое решение состоит в том, чтобы определить фрагмент RStudio следующим образом:
snippet pp
"'r gsub("\\\\", "\\\\\\\\\\\\\\\\", readClipboard())'"
Этот фрагмент преобразует обратную косую черту \
в двойную обратную косую черту \\
. Следующая версия будет работать, если вы предпочитаете конвертировать обратные слэши в косые черты /
.
snippet pp
"'r gsub("\\\\", "/", readClipboard())'"
Как только ваш предпочтительный фрагмент определен, вставьте путь из буфера обмена, набрав p - p - TAB - ENTER (это pp, а затем клавиша табуляции, а затем введите), и путь будет волшебным образом вставлен с R дружественными разделителями.
Лучший способ справиться с этим в случае txt файла, который содержит данные для интеллектуального анализа текста (речь, информационный бюллетень и т.д.), - заменить "\" на "/".
Пример:
file<-Corpus(DirSource("C:/Users/PRATEEK/Desktop/training tool/Text Analytics/text_file_main"))
Заменить обратные косые черты\с помощью косых черт/при работе с машиной для окон
Я знаю, что это действительно старо, но если вы все равно копируете и вставляете, вы можете просто использовать:
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()
Я думаю, что R читает "\" в строке как escape-символ. Например, \n создает новую строку внутри строки, \t создает новую вкладку внутри строки.
'\' будет работать, потому что R распознает это как нормальную обратную косую черту.
Замена обратной косой черты косой чертой для меня работала в Windows.
readClipboard()
тоже работает напрямую. Скопируйте путь в буфер обмена
C:\Users\surfcat\Desktop\2006_dissimilarity.csv
затем
readClipboard()
отображается как
[1] "C:\\Users\\surfcat\\Desktop\\2006_dissimilarity.csv"
Простым способом является использование python. в терминальном терминале python
г "C:\Users\surfcat\Desktop\2006_dissimilarity.csv" и вы вернетесь 'C:\Users\surfcat\Desktop\2006_dissimilarity.csv