Efficiënt backslash omzetten in schuine streep naar voren in R

Ik ben op zoek naar een efficiënte manier om back slash om te zetten in forward slash in R. Soms kopieer ik de link van de map in Windows en krijg ik zoiets als dit:

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

Hoe kan ik dit snel veranderen in C:/Users/jd/Documents/folder/file.txt? Ik kan de bovenstaande uitdrukking niet eens als karakter lezen. Er wordt een fout gegenereerd

“\u gebruikt zonder hexadecimale cijfers in tekenreeks beginnend met “”C:\u”.

Ik weet dat de TAB-functie in R helpt om de locatie snel te vinden, maar ik vroeg me af of er nog andere oplossingen waren. Ik zou de werkdirectory ook kunnen wijzigen in de locatie van de map. Ik speelde gewoon wat rond en probeerde backslash om te zetten in schuine streep naar voren en was niet eenvoudig, dus vroeg ik dit gewoon uit nieuwsgierigheid.


Antwoord 1, autoriteit 100%

In R moet je ontsnappen aan de \met \\Je pad zou dus moeten zijn:

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

Om dat te krijgen, kunt u het volgende doen:

x <- readline()

plak vervolgens bij de prompt uw ​​onaangepastepad (CTRL+V en vervolgens ENTER)

Ten slotte, om \\overal in /te veranderen, zou je gsubkunnen gebruiken, nogmaals door te ontsnappen aan de \, maar twee keer, als volgt:

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

Antwoord 2, autoriteit 71%

Als je zo min mogelijk toetsaanslagen wilt om backslashes te converteren bij het plakken van paden, gebruik dan een RStudio fragmentals volgt gedefinieerd:

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

Vergeet niet om de tweede regel te beginnen met een tab, niet met meerdere spaties om het fragment te laten werken.

Typ vervolgens pp, TAB, ENTERen de tekst op je klembord wordt geplakt, backslashes vervangen door forward slashes en omgeven door aanhalingstekens.

Dit zijn de stappen die ik gewoonlijk neem om bestandspaden naar RStudio te kopiëren zodra het bovenstaande fragment is gedefinieerd:

  1. Navigeer naar bestandspad in verkenner.
  2. Als u een bestandspad kopieert, dan: Shift+ Klik met de rechtermuisknopop het bestand en klik vervolgens op Kopieer als pad.
  3. Als u een mappad kopieert, dan: Alt+ d, Ctrl+ c.
  4. Verander het venster in RStudio en focus in het R-script waar je het pad wilt plakken.
  5. pp, TAB, ENTERom in RStudio te plakken en backslashes om te zetten in forward slashes.

Antwoord 3, autoriteit 22%

Ik gebruik Path Copy Copy, een plug-in voor Windows waarmee u aangepaste kopieën kunt maken commando’s wanneer u met de rechtermuisknop op een bestand/map in Windows klikt. Dus mijn rechtsklikmenu heeft “Copy Full Path with Forward Slash” als een optie, die het bestand/de map kopieert met slashes. Ik vermoed dat het me elk jaar dagenbespaart door handmatig slashes naar het formaat van R te wijzigen.


Antwoord 4, autoriteit 19%

Als ik het goed begrijp, wil je de string-editing verwijderen. Om gsubte kunnen gebruiken, moet u eerst alle \handmatig wijzigen in \\. Dus waarom verander je niet gewoon \in /in de eerste plaats?

Als je de string in het klembord hebt, kun je

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

Dit geeft

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

Dat wil zeggen, het converteert alle \automatisch naar \\.
Ik weet – niet erg handig, maar de enige manier waarop ik weet om rond het bewerken te komen.


5

Ik denk dat de beste manier om van het gedoe te komen, is om het bestand in Rstudio in het rechterpaneel te vinden. En klik vervolgens op “MEER” en klik op “Instellen als werkdirectory”. Dan zie je in de console “Setwd (…)”. U kunt dit naar uw code kopiëren.

Other episodes