Échappant \ en chaîne ou des chemins d'accès dans la R
Windows copie de chemin avec \
qui R ne pas accepter. Donc, je voulais écrire une fonction qui permettrait de convertir des '\''/'. Par exemple:
chartr0 <- function(foo) chartr('\','\\/',foo)
Ensuite utiliser chartr0
...
source(chartr0('E:\RStuff\test.r'))
Mais chartr0
ne fonctionne pas. Je suppose que je suis incapable d'échapper à '/'. Je suppose que s'échapper /
peut être important dans de nombreuses autres occasions.
Aussi, est-il un moyen dans R telle que je n'ai pas à utiliser chartr0
à chaque fois mais convertir tous chemin automatiquement par la création d'un environemnt dans R qui appelle chartr0
ou de l'utilisation une sorte de l'utilisation temporaire comme l'utilisation de options
Probablement
Ou tout simplement utiliser des barres obliques...
Comme Dirk dit, la raison étant que l'avant-slash n'a pas besoin d'être "échappé".
Vous pouvez utiliser le fichier.path("E:","Rstuf","test.r").
Il est une solution intéressante pour windows slash problème ici: stackoverflow.com/a/12703931/1700987
gsub
ou sub
va pour vous y rendre.Ou tout simplement utiliser des barres obliques...
Comme Dirk dit, la raison étant que l'avant-slash n'a pas besoin d'être "échappé".
Vous pouvez utiliser le fichier.path("E:","Rstuf","test.r").
Il est une solution intéressante pour windows slash problème ici: stackoverflow.com/a/12703931/1700987
OriginalL'auteur Stat-R | 2013-01-06
Vous devez vous connecter pour publier un commentaire.
Votre problème fondamental est que la R sera le signal d'une condition d'erreur dès qu'il voit un seul back-slash avant tout caractère autre qu'un peu de lettres minuscules, les barres obliques inverses eux-mêmes, de citations ou de certaines conventions pour entrer en octal, hexadécimal ou Unicode séquences. C'est parce que l'interprète voit à l'arrière-barre oblique comme un message à "s'échapper" de l'habitude de traduction de caractères et de faire autre chose. Si vous ne voulez qu'une seule barre oblique inverse dans votre personnage élément que vous avez besoin de type 2 barres obliques inverses. Qui permettra de créer une barre oblique inverse:
Le Caractère "vecteurs" de la section de _Intro_to_R_ dit:
"Les chaînes de caractères sont saisis à l'aide de concordance double (") ou simples (') les citations, mais sont imprimées à l'aide de guillemets doubles (ou parfois sans les guillemets). Ils utilisent de style C des séquences d'échappement, à l'aide de \ comme caractère d'échappement, de sorte que \ est entré et d'imprimer \, et à l'intérieur des guillemets doubles " est entré en tant que \". D'autres séquences d'échappement sont \n saut de ligne \t, à onglet et \b retour arrière—voir ?Devis pour une liste complète."
OriginalL'auteur 42-
Vous ne pouvez pas écrire E:\Rxxxx parce que R croit R est échappé.
chartr0 <- function(foo) chartr('\\','/',foo)
Merci. Celui-ci est beaucoup plus simple.
OriginalL'auteur Dieter Menne
Le problème est que chaque barre oblique et la barre oblique inverse dans votre code est échappé de manière incorrecte, ce qui donne une chaîne non valide ou le mauvais chaîne de caractères utilisé. Vous avez besoin de lire sur laquelle les caractères doivent être échappés et comment. Jetez un oeil à la liste des séquences d'échappement dans le lien ci-dessous. Ce qui n'est pas répertoriée (tels que la barre oblique) est traité littéralement et ne nécessite pas de s'échapper.
http://cran.r-project.org/doc/manuals/R-lang.html#Literal-constants
dans
chartr('\','\\/',foo)
, il semble que la'\\/'
était une tentative pour échapper à la barre oblique avec une fuite de barre oblique inverse. Peut-être que c'est une hypothèse erronée, mais en tout cas'\\/'
est clairement une mauvaise entrée pourchartr
.Ce n'était pas le '\\/' qui a provoqué l'erreur, mais plutôt la
'\','
séquence.OriginalL'auteur Ryan Thompson