Подтвердить что ты не робот

Эффективно конвертировать обратную косую черту в косую черту в R

Я ищу эффективный способ преобразования обратной косой черты в прямую косую черту в R. Иногда я копирую ссылку на каталог из окон и получаю что-то вроде этого:

C:\Users\jd\Documents\folder\file.txt

Как я могу быстро изменить это на C: /Users/jd/Documents/folder/file.txt? Я даже не могу прочитать вышеупомянутое выражение как символ. Выдает ошибку

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

Я знаю, что функция TAB в R помогает быстро находить местоположение, но мне просто было интересно, есть ли какая-то другая работа вокруг. Я мог бы также изменить рабочий каталог на местоположение папки. Я просто играл и пытался преобразовать обратную косую черту в прямую косую черту и не был прямым, поэтому спросил об этом просто из любопытства.

4b9b3361

Ответ 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 после определения приведенного выше фрагмента:

  1. Перейдите к пути к файлу в проводнике.
  2. Если копируется путь к файлу, то: Shift + Right click для файла, затем нажмите " Копировать как путь".
  3. При копировании пути к папке: Alt + d, Ctrl + c.
  4. Измените окно на RStudio и сфокусируйтесь на R-сценарии, куда вы хотите вставить путь.
  5. 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 (...)". Вы можете скопировать это в свой код.