Проблемы с путем к файлу в R с использованием Windows (ошибка " шестнадцатеричные цифры в символьной строке)



Я запускаю R в Windows и имею csv-файл на рабочем столе. Я загружаю его следующим образом,



x<-read.csv("C:UserssurfcatDesktop06_dissimilarity.csv",header=TRUE)


но R дает следующее сообщение об ошибке




ошибка:' U 'используется без шестнадцатеричных цифр в символьной строке, начиная с "C:U"




Итак, как правильно загрузить этот файл. Я использую Vista

1029   8  

8 ответов:

заменить все \ с \.

он пытается избежать следующего символа в этом случае U Так вставить \ вам нужно вставить экранированный \ что это \

пожалуйста, не отмечайте этот ответ как правильный, поскольку 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)
}

решение

попробуйте это: x <- read.csv("C:/Users/surfcat/Desktop/2006_dissimilarity.csv", header=TRUE)

объяснение

R не может правильно понять обычные пути windows, потому что "\" имеет особое значение - он используется в качестве escape-символа для придания следующим символам особого значения (\n для перехода на новую строку \t для tab,\r для возврата каретки ...,посмотреть здесь).

потому что R не знает последовательности \U он жалуется. Просто замените "\" С "/" или использовать дополнительный "\" бежать "\" от его особого значения и все работает гладко.

альтернатива

на windows, я думаю, что лучше всего сделать, чтобы улучшить свой рабочий процесс с windows конкретных путей в R является использование, например, AutoHotkey, который позволяет для пользовательских горячих клавиш:

  • определить горячую клавишу, например Cntr -Shift -V
  • назначает ему процедуру, которая заменяет символы в буфер обмена с слэши ...
  • когда вы хотите скопировать вставить путь в R вы можете использовать Cntr -Shift -V вместо Cntr -V
  • Et-voila

Фрагмент Кода AutoHotkey(ссылка на Домашняя страница)

^+v::
StringReplace, clipboard, clipboard, \, /, All 
SendInput, %clipboard% 

Мое Решение определение фрагмент RStudio следующим образом:

snippet pp
    "`r gsub("\\", "\\\\\\\\", readClipboard())`"

этот фрагмент преобразует символы \ в двойную обратную косую черту \. Следующая версия будет работать, если вы предпочитаете конвертировать обратные слэши в косые черты/.

snippet pp
    "`r gsub("\\", "/", readClipboard())`"

как только ваш предпочтительный фрагмент определен, вставьте путь из буфера обмена, введя p -p -TAB -введите (это pp, а затем клавиша tab, а затем enter), и путь будет волшебным образом вставлен с помощью R дружественных разделителей.

лучший способ справиться с этим в случае текстового файла, который содержит данные для анализа текста (речи, бюллетень и т. д.) заменить "\" на "/".

пример:

file<-Corpus(DirSource("C:/Users/PRATEEK/Desktop/training tool/Text Analytics/text_file_main"))

замените задние косые черты \ на передние косые черты / при запуске Windows machine

Я думаю, что R читает ' \ ' в строке как escape-символ. Например \n создает новую строку в строке, \t создает новую вкладку в строке.

'\ ' будет работать, потому что R распознает это как обычную обратную косую черту.

простой способ-использовать python. в Python тип терминала

r"C:\Users\surfcat\Desktop\2006_dissimilarity.csv" и ты вернешься 'C:\Users\surfcat\Desktop\2006_dissimilarity.csv'

Comments

    Ничего не найдено.