Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中的字符串中间打印日期_R_String - Fatal编程技术网

在R中的字符串中间打印日期

在R中的字符串中间打印日期,r,string,R,String,我尝试使用此资源: 但我还是找不到我想要的东西 我希望创建一个每周运行的网页刮板,它可以刮板七个网页,每个网页都有一个日期。示例网站(不是此帖子的真实网站)是:“”。因此,我有七个日期,我想创建七个字符串,在字符串末尾插入日期 #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

我尝试使用此资源:

但我还是找不到我想要的东西

我希望创建一个每周运行的网页刮板,它可以刮板七个网页,每个网页都有一个日期。示例网站(不是此帖子的真实网站)是:“”。因此,我有七个日期,我想创建七个字符串,在字符串末尾插入日期

#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"
预期的最终产出将是:

[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中遇到的问题是在字符串中插入日期。如果您能为我指出正确的方向,我们将不胜感激

试试以下方法:

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"
如果希望
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 = "")
或者,如果在某些行的末尾有额外的空间不是问题,那么可以省略上面第一行和第三行中的
sep=“”
。或者,gsubfn包有一个
cat0
功能,该功能与
cat
相同,只是默认的
sep

在这种情况下,循环似乎比下面的非循环解决方案更清晰。

尝试以下方法:

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"
如果希望
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 = "")
或者,如果在某些行的末尾有额外的空间不是问题,那么可以省略上面第一行和第三行中的
sep=“”
。或者,gsubfn包有一个
cat0
功能,该功能与
cat
相同,只是默认的
sep


在这种情况下,循环似乎比它下面的非循环解决方案更清晰。

我认为你太担心引号了,这是在绊倒自己。您并不真正需要引号,因此不要尝试在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"

我认为你太担心这些引语了,这是自找麻烦。您并不真正需要引号,因此不要尝试在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"

cat
将向控制台显示文本或向文件发送文本,但您不能将结果分配给R名称,因为它返回
NULL
。如果要分配或构造函数参数,只需使用
paste
paste0
sprintf
,而不使用
cat
cat
将向控制台显示文本或向文件发送文本,但无法将结果分配给R名称,因为它返回
NULL
。如果要赋值或构造函数参数,只需使用
paste
paste0
sprintf
,而不使用
cat