web-dev-qa-db-fra.com

Convertissez efficacement la barre oblique inverse en barre oblique dans R

Je cherche un moyen efficace de convertir la barre oblique inverse en barre oblique dans R. Parfois, je copie le lien du répertoire à partir des fenêtres et j'obtiens quelque chose comme ceci:

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

Comment puis-je rapidement changer cela en C:/Users/jd/Documents/folder/file.txt? Je ne peux même pas lire l'expression ci-dessus comme caractère. Il jette une erreur

"\ u utilisé sans chiffres hexadécimaux dans la chaîne de caractères commençant" "C:\u".

Je sais que la fonction TAB dans R aide à trouver l'emplacement rapidement, mais je me demandais simplement s'il y avait un autre problème. Je pourrais également changer le répertoire de travail en l'emplacement du dossier. Je jouais juste autour et j'ai essayé de convertir la barre oblique inverse en barre oblique et n'était pas simple, donc j'ai posé cette question simplement par curiosité.

45
Janesh Devkota

Dans R, vous devez échapper au \ avec \\ Donc, votre chemin devrait être:

x <- "C:\\Users\\jd\\Documents\\folder\\file.txt"

Pour l'obtenir, vous pouvez faire:

x <- readline()

puis, à l'invite, collez votre chemin non modifié (CTRL + V puis ENTER)

Enfin, pour changer \\ à / partout, vous pouvez utiliser gsub, encore une fois en échappant au \, mais deux fois, comme suit:

gsub("\\\\", "/", x)
# [1] "C:/Users/jd/Documents/folder/file.txt"
43
Arun

Si vous souhaitez que le moins de touches pour convertir les barres obliques inverses lors du collage de chemins, utilisez un RStudio extrait défini comme suit:

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

N'oubliez pas de faire précéder la deuxième ligne d'un onglet , et non de plusieurs espaces pour que l'extrait de code fonctionne.

Tapez ensuite ppTABENTER et le texte de votre presse-papiers est collé, les barres obliques inversées sont remplacées par des barres obliques et entourées de guillemets.

Voici les étapes que je prends habituellement pour copier les chemins de fichiers vers RStudio une fois que l'extrait ci-dessus a été défini:

  1. Accédez au chemin du fichier dans l'Explorateur.
  2. Si vous copiez un chemin de fichier, alors: Shift + Right click sur le fichier, puis cliquez sur Copier comme chemin .
  3. Si vous copiez un chemin de dossier, alors: Alt + dCtrl + c.
  4. Changez la fenêtre en RStudio et concentrez-vous dans le script R où vous souhaitez coller le chemin.
  5. ppTABENTER pour coller dans RStudio et convertir les barres obliques inverses en barres obliques.
23
Josh Gilfillan

Si je comprends bien, vous voulez vous débarrasser de l'édition des chaînes. Pour pouvoir utiliser gsub, vous devez modifier tous les \ à \\ manuellement d'abord. Alors, pourquoi ne pas simplement changer \ à / Premièrement?

Si vous avez la chaîne dans le presse-papiers, vous pouvez utiliser

  x=scan("clipboard",what="string")

Cela donne

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

Autrement dit, il convertit tous les \ à \\ automatiquement. Je sais - pas très pratique, mais le seul moyen que je connaisse pour contourner le montage.

11
cryo111

J'utilise Path Copy Copy , qui est un plug-in pour Windows qui vous permet de créer des commandes de copie personnalisées lorsque vous cliquez avec le bouton droit sur un fichier/dossier dans Windows. Mon menu contextuel a donc l'option "Copier le chemin complet avec barre oblique", qui copie le fichier/dossier avec des barres obliques. Je suppose que cela me fait gagner jours chaque année du changement manuel des barres obliques au format R.

8
Eden

programme autohotkey:

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

après control + c le chemin du fichier, utilisez control + shift + v pour coller

7
hedgedandlevered

J'aime utiliser le complément RStudio snippetsaddin qui a la fonction 'Convert slash' :

Il inversera toutes les barres obliques dans le ou les blocs de code sélectionnés, ou s'il n'y a pas de sélection (ou seulement des espaces sont sélectionnés), il inversera toutes les barres obliques dans le presse-papiers et les collera à la position actuelle du ou des curseurs ( s).

Les compléments ne sont pas installés comme un package. Pour installer celui-ci, procédez comme suit:

devtools::install_github("sfr/RStudio-Addin-Snippets", type = "source")
6
Ben

Voici une méthode en une étape pour convertir l'adresse à partir du presse-papiers

x  <- gsub  ( "\\\\",  "/",  readClipboard ()  ) 
6
craig_c

Une solution sans définition d'extrait est

writeClipboard(gsub("\\\\", "/", readClipboard()))
1
userJT

Je pense que la meilleure façon de se débarrasser des tracas est de trouver le fichier dans Rstudio dans le panneau de droite. Et puis cliquez sur "plus" et cliquez sur "Définir comme répertoire de travail". Ensuite, vous verrez dans la console "setwd (...)". Vous pouvez copier ceci dans votre code.

0
Sheng