解码R中的URL字符串向量

时间:2013-11-20 09:33:55

标签: r url decode

假设您有一个包含URL编码字符串的原子向量。

例如:

urlencoded<-c("im%20looking%20for%20uncle","im%20looking%20for%20sister") 

有没有办法解码向量中的每个元素,返回与常规文本相同长度的向量?

换句话说,输出应该是:

c("im looking for uncle","im looking for sister")

基础R中的URLdecode没有矢量化,而且速度很慢。 R之外有很多实用程序可以快速解码URL编码的字符串,但我在R中找不到任何好的实用程序。

2 个答案:

答案 0 :(得分:2)

您可以将函数应用于sapply的矢量。它将返回结果向量:

> urlencoded <- c("im%20looking%20for%20uncle", "im%20looking%20for%20sister")
> sapply(urlencoded, URLdecode, USE.NAMES = FALSE)
[1] "im looking for uncle"  "im looking for sister"

答案 1 :(得分:1)

对于那些还不知道的人来说,urltools包含了矢量化url_decodeurl_encode

library(urltools)

urlencoded <- c("im%20looking%20for%20uncle","im%20looking%20for%20sister")
url_decode(urlencoded)
# [1] "im looking for uncle"  "im looking for sister"

url_encode(c("im looking for uncle", "im looking for sister"))
# [1] "im%20looking%20for%20uncle"  "im%20looking%20for%20sister"