如何逃避r中百分比'%'的符号?

9 r escaping special-characters

在一个网址中,我正在处理我应该作为字符串传递的特殊字符' % '.网址包含一些argumnents所以我使用sprintf.如何在r中转义符号' % '?

start <- 1
#%s is my variable
url<-(sprintf('https://www.amazon.com/s/ref=sr_pg_%s?rh=n%3A172282%2Cn%3A%21493964%2Cn%3A502394%2Cn%3A281052%2Cn%3A12556502011%2Cn%3A3017941&page=%s&ie=UTF8', start, start))
Run Code Online (Sandbox Code Playgroud)

格式'%2Cn%3A'无效; 将格式%s用于字符对象

Ale*_*lex 12

作为sprintf状态的帮助文件:

C函数sprintf的包装器,......

因此,你R以与你相同的方式逃避它C,使用双重百分比符号%%来产生一个%,按照

如何逃避sprintf()%标记,以便它们不被识别为变量?

在您的代码中,我们生成了一个url,可能是在这个amazon.com搜索中提取第一页:

url<-(sprintf('https://www.amazon.com/s/ref=sr_pg_%s?rh=n%%3??A172282%%2Cn%%3A%%21??493964%%2Cn%%3A50239??4%%2Cn%%3A281052%%2C??n%%3A12556502011%%2C??n%%3A3017941&page=%s??&ie=UTF8', start, start))
Run Code Online (Sandbox Code Playgroud)

产生

> url
[1] "https://www.amazon.com/s/ref=sr_pg_1?rh=n%3A172282%2Cn%3A%21493964%2Cn%3A502394%2Cn%3A281052%2Cn%3A12556502011%2Cn%3A3017941&page=1&ie=UTF8"
Run Code Online (Sandbox Code Playgroud)