我尝试使用此资源:How to print R variables in middle of String
我仍然无法达到我想要的目标。
我正在寻找创建一个每周运行一次的网络刮刀,它会刮掉七个网页,每个网页都有一个日期。一个示例网站(不是这个帖子的真实网站)将是:“http://www.stevel.com/log/?xid=2275644&dd=2014-12-20”。因此,我有七个日期,我想创建七个字符串,在字符串末尾插入日期。
#create dates needed
dates <- seq.Date(as.Date(Sys.Date() - 6) , Sys.Date(), by='days')
dates
[1] "2015-01-15" "2015-01-16" "2015-01-17" "2015-01-18" "2015-01-19" "2015-01-20"
[7] "2015-01-21"
在创建循环之前我的微弱尝试试图只产生一个观察结果:
cat(sprintf("http://www.stevel.com/log/?xid=2275644&dd="\"%s"\, dates[1]))
期望的最终输出将是:
[1] "http://www.stevel.com/log/?xid=2275644&dd=2015-01-15"
"http://www.stevel.com/log/?xid=2275644&dd=2015-01-16"
"http://www.stevel.com/log/?xid=2275644&dd=2015-01-17"
"http://www.stevel.com/log/?xid=2275644&dd=2015-01-18"
"http://www.stevel.com/log/?xid=2275644&dd=2015-01-19"
"http://www.stevel.com/log/?xid=2275644&dd=2015-01-20"
[7] "http://www.stevel.com/log/?xid=2275644&dd=2015-01-21"
我在R中明确地将日期插入字符串中的问题。任何有助于指出我正确方向的人都将不胜感激
答案 0 :(得分:5)
试试这个:
paste0("http://www.stevel.com/log/?xid=2275644&dd=", Sys.Date() - 6:0)
给出这个角色矢量:
[1] "http://www.stevel.com/log/?xid=2275644&dd=2015-01-15"
[2] "http://www.stevel.com/log/?xid=2275644&dd=2015-01-16"
[3] "http://www.stevel.com/log/?xid=2275644&dd=2015-01-17"
[4] "http://www.stevel.com/log/?xid=2275644&dd=2015-01-18"
[5] "http://www.stevel.com/log/?xid=2275644&dd=2015-01-19"
[6] "http://www.stevel.com/log/?xid=2275644&dd=2015-01-20"
[7] "http://www.stevel.com/log/?xid=2275644&dd=2015-01-21"
如果你想在R控制台的7个连续行上cat
而不是输出一个字符向量,那么如果v
是上面的字符向量,那么以下任何一行都可以:
for(e in v) cat(e, "\n", sep = "")
cat(paste(paste0(v, "\n"), collapse = ""))
cat(paste(v, collapse = "\n"), "\n", sep = "")
或者如果在某些行的末尾有一个额外的空格不是问题,则可以省略上面第一个和第三个中的sep=""
。或者,gsubfn包具有cat0
函数,该函数与cat
相同,但默认sep
为""
。
在这种情况下,循环似乎比它下面的非循环解决方案更清晰。
答案 1 :(得分:2)
我认为你过分担心报价会使自己绊倒。你真的不想要引号,所以不要试图在sprintf调用中转义它们:
sprintf("http://www.stevel.com/log/?xid=2275644&dd=%s", dates)
#-----------------
[1] "http://www.stevel.com/log/?xid=2275644&dd=2015-01-15"
[2] "http://www.stevel.com/log/?xid=2275644&dd=2015-01-16"
[3] "http://www.stevel.com/log/?xid=2275644&dd=2015-01-17"
[4] "http://www.stevel.com/log/?xid=2275644&dd=2015-01-18"
[5] "http://www.stevel.com/log/?xid=2275644&dd=2015-01-19"
[6] "http://www.stevel.com/log/?xid=2275644&dd=2015-01-20"
[7] "http://www.stevel.com/log/?xid=2275644&dd=2015-01-21"