6 votes

Comment convertir "espace" en "%20" avec R

En référence au titre, je me demande comment convertir l'espace entre les mots en %20 .

Par exemple,

> y <- "I Love You"

Comment faire y = I%20Love%20You

> y
[1] "I%20Love%20You"

Merci beaucoup.

22voto

plannapus Points 9026

Une autre option serait URLencode() :

y <- "I love you"
URLencode(y)
[1] "I%20love%20you"

8voto

Gavin Simpson Points 72349

gsub() est une option :

R> gsub(pattern = " ", replacement = "%20", x = y)
[1] "I%20Love%20You"

2voto

Chernoff Points 299

La fonction curlEscape() du paquet RCurl fait le travail.

library('RCurl')
y <- "I love you"
curlEscape(urls=y)
[1] "I%20love%20you"

1voto

J'aime URLencode() mais sachez que parfois cela ne fonctionne pas comme prévu si votre url contient déjà un %20 avec un espace réel, auquel cas même la repeated option de URLencode() c'est faire ce que tu veux.

Dans mon cas, j'ai dû exécuter les deux URLencode() y gsub consécutivement pour obtenir exactement ce dont j'avais besoin, comme ça :

a = "already%20encoded%space/a real space.csv"

URLencode(a)
#returns: "encoded%20space/real space.csv"
#note the spaces that are not transformed

URLencode(a, repeated=TRUE)
#returns: "encoded%2520space/real%20space.csv"
#note the %2520 in the first part

gsub(" ", "%20", URLencode(a))
#returns: "encoded%20space/real%20space.csv"

Dans cet exemple particulier, gsub() seul aurait été suffisant, mais URLencode() fait bien sûr plus que remplacer des espaces.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X