如何通过 month/week 生成开始和结束日期向量,但使向量的最后结束日期以今天结束?
How to generate start and end date vectors by month/week but make the last end date of the vector ending with today?
我正在尝试为接受以下参数的 api 导入包生成向量
date.from
Start date in YYYY-MM-DD.
date.to
End date in YYYY-MM-DD.
由于日期范围很大并且我试图在不抽样的情况下获取数据,我必须将请求拆分为更小的请求,否则我会收到错误 400 和尝试较小日期范围的建议。
我的代码如下所示:
library(lubridate)
today <- Sys.Date()
start_date <- seq(as.Date("2013-01-01"), as.Date(today), by = "months")
end_date <- seq(as.Date("2013-02-01"), as.Date(today), by = "months")-1
它会产生 2 组开始日期和结束日期,但是开始日期的集合是当月的第一天,但结束日期没有任何内容,因为当月不完整(今天是 2020- 09-12)
> start_date
[1] "2013-01-01" "2013-02-01" "2013-03-01" "2013-04-01" "2013-05-01" "2013-06-01" "2013-07-01"
[8] "2013-08-01" "2013-09-01" "2013-10-01" "2013-11-01" "2013-12-01" "2014-01-01" "2014-02-01"
[15] "2014-03-01" "2014-04-01" "2014-05-01" "2014-06-01" "2014-07-01" "2014-08-01" "2014-09-01"
[22] "2014-10-01" "2014-11-01" "2014-12-01" "2015-01-01" "2015-02-01" "2015-03-01" "2015-04-01"
[29] "2015-05-01" "2015-06-01" "2015-07-01" "2015-08-01" "2015-09-01" "2015-10-01" "2015-11-01"
[36] "2015-12-01" "2016-01-01" "2016-02-01" "2016-03-01" "2016-04-01" "2016-05-01" "2016-06-01"
[43] "2016-07-01" "2016-08-01" "2016-09-01" "2016-10-01" "2016-11-01" "2016-12-01" "2017-01-01"
[50] "2017-02-01" "2017-03-01" "2017-04-01" "2017-05-01" "2017-06-01" "2017-07-01" "2017-08-01"
[57] "2017-09-01" "2017-10-01" "2017-11-01" "2017-12-01" "2018-01-01" "2018-02-01" "2018-03-01"
[64] "2018-04-01" "2018-05-01" "2018-06-01" "2018-07-01" "2018-08-01" "2018-09-01" "2018-10-01"
[71] "2018-11-01" "2018-12-01" "2019-01-01" "2019-02-01" "2019-03-01" "2019-04-01" "2019-05-01"
[78] "2019-06-01" "2019-07-01" "2019-08-01" "2019-09-01" "2019-10-01" "2019-11-01" "2019-12-01"
[85] "2020-01-01" "2020-02-01" "2020-03-01" "2020-04-01" "2020-05-01" "2020-06-01" "2020-07-01"
[92] "2020-08-01" "2020-09-01"
> end_date
[1] "2013-01-30" "2013-03-02" "2013-03-30" "2013-04-30" "2013-05-30" "2013-06-30" "2013-07-30"
[8] "2013-08-30" "2013-09-30" "2013-10-30" "2013-11-30" "2013-12-30" "2014-01-30" "2014-03-02"
[15] "2014-03-30" "2014-04-30" "2014-05-30" "2014-06-30" "2014-07-30" "2014-08-30" "2014-09-30"
[22] "2014-10-30" "2014-11-30" "2014-12-30" "2015-01-30" "2015-03-02" "2015-03-30" "2015-04-30"
[29] "2015-05-30" "2015-06-30" "2015-07-30" "2015-08-30" "2015-09-30" "2015-10-30" "2015-11-30"
[36] "2015-12-30" "2016-01-30" "2016-03-01" "2016-03-30" "2016-04-30" "2016-05-30" "2016-06-30"
[43] "2016-07-30" "2016-08-30" "2016-09-30" "2016-10-30" "2016-11-30" "2016-12-30" "2017-01-30"
[50] "2017-03-02" "2017-03-30" "2017-04-30" "2017-05-30" "2017-06-30" "2017-07-30" "2017-08-30"
[57] "2017-09-30" "2017-10-30" "2017-11-30" "2017-12-30" "2018-01-30" "2018-03-02" "2018-03-30"
[64] "2018-04-30" "2018-05-30" "2018-06-30" "2018-07-30" "2018-08-30" "2018-09-30" "2018-10-30"
[71] "2018-11-30" "2018-12-30" "2019-01-30" "2019-03-02" "2019-03-30" "2019-04-30" "2019-05-30"
[78] "2019-06-30" "2019-07-30" "2019-08-30" "2019-09-30" "2019-10-30" "2019-11-30" "2019-12-30"
[85] "2020-01-30" "2020-03-01" "2020-03-30" "2020-04-30" "2020-05-30" "2020-06-30" "2020-07-30"
[92] "2020-08-30"
我稍后会像这样通过循环:
metrika_sources <- list()
for (i in 1:length(start_date)) {
for (j in 1:length(end_date)) {
rym_sources <-
rym_get_data(
counters = "******",
date.from = start_date[i],
date.to = end_date[j],
dimensions = "ym:s:date,ym:s:lastTrafficSource,ym:s:lastSourceEngine,ym:s:deviceCategory,ym:s:UTMSource,ym:s:UTMMedium,ym:s:UTMCampaign",
metrics = "ym:s:visits,ym:s:pageviews,ym:s:users,ym:s:bounceRate,ym:s:pageDepth,ym:s:avgVisitDurationSeconds,ym:s:productPurchasedQuantity",
sort = "-ym:s:date",
login = "******",
token.path = "*****",
accuracy = "full",
)
}
}
有没有办法让序列以今天或昨天的日期结束?
感谢您的帮助
或许您可以将 today
和 today - 1
分别附加到开始日期和结束日期。
today <- Sys.Date()
start_date <- c(start_date, today)
end_date <- c(end_date, today - 1)
我正在尝试为接受以下参数的 api 导入包生成向量
date.from
Start date in YYYY-MM-DD.
date.to
End date in YYYY-MM-DD.
由于日期范围很大并且我试图在不抽样的情况下获取数据,我必须将请求拆分为更小的请求,否则我会收到错误 400 和尝试较小日期范围的建议。
我的代码如下所示:
library(lubridate)
today <- Sys.Date()
start_date <- seq(as.Date("2013-01-01"), as.Date(today), by = "months")
end_date <- seq(as.Date("2013-02-01"), as.Date(today), by = "months")-1
它会产生 2 组开始日期和结束日期,但是开始日期的集合是当月的第一天,但结束日期没有任何内容,因为当月不完整(今天是 2020- 09-12)
> start_date
[1] "2013-01-01" "2013-02-01" "2013-03-01" "2013-04-01" "2013-05-01" "2013-06-01" "2013-07-01"
[8] "2013-08-01" "2013-09-01" "2013-10-01" "2013-11-01" "2013-12-01" "2014-01-01" "2014-02-01"
[15] "2014-03-01" "2014-04-01" "2014-05-01" "2014-06-01" "2014-07-01" "2014-08-01" "2014-09-01"
[22] "2014-10-01" "2014-11-01" "2014-12-01" "2015-01-01" "2015-02-01" "2015-03-01" "2015-04-01"
[29] "2015-05-01" "2015-06-01" "2015-07-01" "2015-08-01" "2015-09-01" "2015-10-01" "2015-11-01"
[36] "2015-12-01" "2016-01-01" "2016-02-01" "2016-03-01" "2016-04-01" "2016-05-01" "2016-06-01"
[43] "2016-07-01" "2016-08-01" "2016-09-01" "2016-10-01" "2016-11-01" "2016-12-01" "2017-01-01"
[50] "2017-02-01" "2017-03-01" "2017-04-01" "2017-05-01" "2017-06-01" "2017-07-01" "2017-08-01"
[57] "2017-09-01" "2017-10-01" "2017-11-01" "2017-12-01" "2018-01-01" "2018-02-01" "2018-03-01"
[64] "2018-04-01" "2018-05-01" "2018-06-01" "2018-07-01" "2018-08-01" "2018-09-01" "2018-10-01"
[71] "2018-11-01" "2018-12-01" "2019-01-01" "2019-02-01" "2019-03-01" "2019-04-01" "2019-05-01"
[78] "2019-06-01" "2019-07-01" "2019-08-01" "2019-09-01" "2019-10-01" "2019-11-01" "2019-12-01"
[85] "2020-01-01" "2020-02-01" "2020-03-01" "2020-04-01" "2020-05-01" "2020-06-01" "2020-07-01"
[92] "2020-08-01" "2020-09-01"
> end_date
[1] "2013-01-30" "2013-03-02" "2013-03-30" "2013-04-30" "2013-05-30" "2013-06-30" "2013-07-30"
[8] "2013-08-30" "2013-09-30" "2013-10-30" "2013-11-30" "2013-12-30" "2014-01-30" "2014-03-02"
[15] "2014-03-30" "2014-04-30" "2014-05-30" "2014-06-30" "2014-07-30" "2014-08-30" "2014-09-30"
[22] "2014-10-30" "2014-11-30" "2014-12-30" "2015-01-30" "2015-03-02" "2015-03-30" "2015-04-30"
[29] "2015-05-30" "2015-06-30" "2015-07-30" "2015-08-30" "2015-09-30" "2015-10-30" "2015-11-30"
[36] "2015-12-30" "2016-01-30" "2016-03-01" "2016-03-30" "2016-04-30" "2016-05-30" "2016-06-30"
[43] "2016-07-30" "2016-08-30" "2016-09-30" "2016-10-30" "2016-11-30" "2016-12-30" "2017-01-30"
[50] "2017-03-02" "2017-03-30" "2017-04-30" "2017-05-30" "2017-06-30" "2017-07-30" "2017-08-30"
[57] "2017-09-30" "2017-10-30" "2017-11-30" "2017-12-30" "2018-01-30" "2018-03-02" "2018-03-30"
[64] "2018-04-30" "2018-05-30" "2018-06-30" "2018-07-30" "2018-08-30" "2018-09-30" "2018-10-30"
[71] "2018-11-30" "2018-12-30" "2019-01-30" "2019-03-02" "2019-03-30" "2019-04-30" "2019-05-30"
[78] "2019-06-30" "2019-07-30" "2019-08-30" "2019-09-30" "2019-10-30" "2019-11-30" "2019-12-30"
[85] "2020-01-30" "2020-03-01" "2020-03-30" "2020-04-30" "2020-05-30" "2020-06-30" "2020-07-30"
[92] "2020-08-30"
我稍后会像这样通过循环:
metrika_sources <- list()
for (i in 1:length(start_date)) {
for (j in 1:length(end_date)) {
rym_sources <-
rym_get_data(
counters = "******",
date.from = start_date[i],
date.to = end_date[j],
dimensions = "ym:s:date,ym:s:lastTrafficSource,ym:s:lastSourceEngine,ym:s:deviceCategory,ym:s:UTMSource,ym:s:UTMMedium,ym:s:UTMCampaign",
metrics = "ym:s:visits,ym:s:pageviews,ym:s:users,ym:s:bounceRate,ym:s:pageDepth,ym:s:avgVisitDurationSeconds,ym:s:productPurchasedQuantity",
sort = "-ym:s:date",
login = "******",
token.path = "*****",
accuracy = "full",
)
}
}
有没有办法让序列以今天或昨天的日期结束?
感谢您的帮助
或许您可以将 today
和 today - 1
分别附加到开始日期和结束日期。
today <- Sys.Date()
start_date <- c(start_date, today)
end_date <- c(end_date, today - 1)