Эффективно конвертировать обратную косую черту в косую черту в R
Я ищу эффективный способ преобразования обратной косой черты в прямую косую черту в R. Иногда я копирую ссылку на каталог из окон и получаю что-то вроде этого:
C:\Users\jd\Documents\folder\file.txt
Как я могу быстро изменить это на C: /Users/jd/Documents/folder/file.txt
? Я даже не могу прочитать вышеупомянутое выражение как символ. Выдает ошибку
"\ u используется без шестнадцатеричных цифр в символьной строке, начинающейся" "C:\u".
Я знаю, что функция TAB в R помогает быстро находить местоположение, но мне просто было интересно, есть ли какая-то другая работа вокруг. Я мог бы также изменить рабочий каталог на местоположение папки. Я просто играл и пытался преобразовать обратную косую черту в прямую косую черту и не был прямым, поэтому спросил об этом просто из любопытства.
Ответы
Ответ 1
В R вам нужно избежать \
с помощью \\
Итак, ваш путь должен быть:
x <- "C:\\Users\\jd\\Documents\\folder\\file.txt"
Для этого вы можете:
x <- readline()
затем в приглашении вставьте немодифицированный путь (CTRL + V, затем ENTER)
Наконец, чтобы изменить \\
на /
всюду, вы можете использовать gsub
еще раз, выполнив \
, но дважды, следующим образом:
gsub("\\\\", "/", x)
# [1] "C:/Users/jd/Documents/folder/file.txt"
Ответ 2
Если вы хотите, чтобы при вставке путей наименьшее количество нажатий клавиш преобразовывало обратную косую черту, используйте фрагмент RStudio, определенный следующим образом:
snippet pp
"'r gsub('"', "", gsub("\\\\", "/", readClipboard()))'"
Не забудьте предвосхитить вторую строку знаком табуляции, а не несколькими пробелами для работы с фрагментом.
Затем введите pp, TAB, ENTER, и текст в буфере обмена будет вставлен, обратная косая черта заменена косой чертой и заключена в кавычки.
Вот шаги, которые я обычно предпринимаю, чтобы скопировать пути к файлам в RStudio после определения приведенного выше фрагмента:
- Перейдите к пути к файлу в проводнике.
- Если копируется путь к файлу, то: Shift + Right click для файла, затем нажмите " Копировать как путь".
- При копировании пути к папке: Alt + d, Ctrl + c.
- Измените окно на RStudio и сфокусируйтесь на R-сценарии, куда вы хотите вставить путь.
- pp, TAB, ENTER для вставки в RStudio и преобразования обратной косой черты в прямую косую черту.
Ответ 3
Если я правильно понимаю, вы хотите избавиться от редактирования строки. Чтобы иметь возможность использовать gsub
, вам сначала придется сначала изменить все \
на \\
вручную. Итак, почему бы просто не изменить \
на /
на первое место?
Если у вас есть строка в буфере обмена, вы можете использовать
x=scan("clipboard",what="string")
Это дает
"C:\\Users\\jd\\Documents\\folder\\file.txt"
То есть, он автоматически преобразует все \
в \\
.
Я знаю - не очень удобно, но единственный способ, которым я знаю, чтобы обойти редактирование.
Ответ 4
Я использую Path Copy Copy, который является подключаемым модулем к Windows, который позволяет создавать пользовательские команды копирования, когда вы щелкните правой кнопкой мыши файл/папку в Windows. Таким образом, в моем меню правой кнопки мыши есть опция "Копировать полный путь с перемоткой вперед", который копирует файл/папку с помощью косой черты. Я предполагаю, что это спасает меня каждый год от ручного смены коллажа до формата R.
Ответ 5
программа autohotkey:
^+v::
StringReplace, clipboard, clipboard, \,/,All
send %clipboard%
после управления + c путь к файлу, используйте control + shift + v для вставки
Ответ 6
Мне нравится использовать RStudio добавить в snippetsaddin, который имеет функцию "Преобразовать слэш":
Он будет отменять все косые черты либо в выбранном блоке (-ах) кода, либо если нет выбора (или выбрано только пробел), он отменяет все косые черты в буфере обмена и вставляет его в текущую позицию курсора (ов) с).
Аддины не указаны как пакет. Чтобы установить это, выполните следующие действия:
devtools::install_github("sfr/RStudio-Addin-Snippets", type = "source")
Ответ 7
Ниже приведен один шаг для преобразования адреса из буфера обмена
x <- gsub ( "\\\\", "/", readClipboard () )
Ответ 8
Решение без определения фрагментации
writeClipboard(gsub("\\\\", "/", readClipboard()))
Ответ 9
Я думаю, что лучший способ избавиться от хлопот - найти файл в Rstudio на правой панели. Затем нажмите "больше" и нажмите "Установить как рабочий каталог". Затем вы увидите в консоли "setwd (...)". Вы можете скопировать это в свой код.