[R] "Special" characters in URI
Henrik Bengtsson
hb at maths.lth.se
Tue May 3 16:33:17 CEST 2005
Gregor GORJANC wrote:
> Henrik Bengtsson wrote:
> ...
>
>>>Henrik, thanks. So you suggest something like
>>>
>>>for (i in seq(along=map)) {
>>> URL <- gsub(pattern=names(map)[i], replacement=map[i], x=URL)
>>>}
>>>
>>
>>Yes, something like that. To optimize, you might want to do
>>
>>patterns <- names(map);
>>for (i in seq(along=map)) {
>> URL <- gsub(pattern=patterns[i], replacement=map[i], x=URL)
>>}
>>
>
> Do I gain anything more than readability by this optimization?
Yes, names() is only called once and not length(map) times. You won't
probably notice it, but it is a good custom to do the above. Sometimes
you're dealing with much larger vectors and then it will pay off.
/Henrik
>
>>More important is that you treat a standard "%" different from a "%"
>>used in encoding, e.g. how do you want to convert the string "100% %20"?
>>You probably have to utilize more "fancy" regular expressions to detect
>>a standard "%". Maybe "%[^0-9a-fA-F]" will do. There should be much more
>>details in the document Brian Ripley refered you to.
>>
>>In other words, you have to be careful and try to think through all
>>cases you function may be called. A good test is to call it twice, once
>>on your original string and the on the escaped on; you should get the
>>same result. It depends how complete you want your function to be.
>
> Thanks again.
>
More information about the R-help
mailing list