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

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

x<-read.csv("C:\Users\surfcat\Desktop\2006_dissimilarity.csv",header=TRUE) 

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

Ошибка: ‘\ U’ используется без шестнадцатеричных цифр в символьной строке, начиная с “C: \ U”

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

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

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

    Не указывайте этот ответ так, как smitec уже ответил правильно. Я включаю функцию удобства, которую я храню в своей .First библиотеке, которая преобразует путь 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 для вкладки, \r для возврата каретки, .. ., посмотрите здесь ).

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

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

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

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

    Фрагмент кода AutoHotkey (ссылка на главную страницу)

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

    Мое решение состоит в том, чтобы определить fragment RStudio следующим образом:

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

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

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

    Как только ваш предпочтительный fragment определен, вставьте путь из буфера обмена, набрав ppTABENTER (это pp, а затем клавишу вкладки, а затем введите), и путь будет волшебным образом вставлен с R дружественными разделителями.

    Лучший способ справиться с этим в случае txt-файла, который содержит данные для интеллектуального анализа текста (речь, информационный бюллетень и т. Д.), – заменить «\» на «/».

    Пример:

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

    Заменить обратные косые черты \ с помощью косых черт / при работе с машиной для окон

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

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

    Простым способом является использование python. в типе терминала python

    r “C: \ Users \ surfcat \ Desktop \ 2006_dissimilarity.csv”, и вы вернетесь ‘C: \ Users \ surfcat \ Desktop \ 2006_dissimilarity.csv’

    Interesting Posts

    Laravel присоединяется к запросу с условиями

    symfony2: как использовать group_concat в QueryBuilder

    Отправка электронной почты с использованием C #

    Почему большой локальный массив разбивает мою программу, но глобальный – нет?

    Библиотеки обработки изображений с быстрой кросс-платформенной C / C ++

    Рассчитать расстояние между двумя точками долготы широты? (Формула Хаверсина)

    Как связать SID старого пользователя с новым пользователем, чтобы оставаться владельцем файла NTFS и разрешениями после новой переустановки Windows?

    «Закрытие – это объекты бедного человека и наоборот». Что это значит?

    Как программно определить, подключено ли устройство Bluetooth? (Android 2.2)

    : not () не ведет себя так же между Safari и Chrome / Firefox

    Как сохранить пробелы в DropDownList – представления ASP.NET MVC Razor

    Подключение к WebSphere MQ в Java с помощью SSL / Keystore

    Константа C / C ++ NaN (буквальная)?

    Сбор мусора Java G1 в производстве

    JTable, RowFilter и RowFilter.Entry

    Давайте будем гением компьютера.