[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