我试图使用这个资源: 如何在String中间打印R变量
我仍然无法达到我想要的东西.
我希望创建一个每周运行一次的网络刮刀,它会刮掉七个网页,每个网页都有一个日期.一个示例网站(不是这个帖子的真实网站)将是:" 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"
Run Code Online (Sandbox Code Playgroud)
在创建一个循环之前我的微弱尝试试图产生一个观察:
cat(sprintf("http://www.stevel.com/log/?xid=2275644&dd="\"%s"\, dates[1]))
Run Code Online (Sandbox Code Playgroud)
期望的最终输出将是:
[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"
Run Code Online (Sandbox Code Playgroud)
我在R中明确地将一个日期插入字符串中的问题.任何帮助指出我正确的方向将不胜感激
试试这个:
paste0("http://www.stevel.com/log/?xid=2275644&dd=", Sys.Date() - 6:0)
Run Code Online (Sandbox Code Playgroud)
给这个字符向量:
[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"
Run Code Online (Sandbox Code Playgroud)
如果你想cat在R控制台的7个连续行上输出它们而不是输出一个字符向量,那么如果v是上面的字符向量,那么以下任何一个都可以:
for(e in v) cat(e, "\n", sep = "")
cat(paste(paste0(v, "\n"), collapse = ""))
cat(paste(v, collapse = "\n"), "\n", sep = "")
Run Code Online (Sandbox Code Playgroud)
或者如果在某些行的末尾有一个额外的空格不是问题,那么sep=""在上面的第一个和第三个中可以省略.交替的gsubfn包装具有cat0功能,其是相同的相同cat,除了默认的sep是"".
在这种情况下,循环看起来比它下面的非循环解决方案更清晰.