这可能是一个非常基本的问题 我已经下载了Google趋势文件,每行的日期范围是类似于2004-01-04 - 2004-01-10的周格式。这基本上是从周日到周六
这里的伪代码,其中周等于上述格式(2004-01-04 - 2004-01-10)
googledata <- googledata %>%
mutate(startdate = ymd(substr(Week, 1, 10)),
enddate = ymd(substr(Week, 14, 26)),
weekno = isoweek(startdate),
weekno2 = isoweek(enddate))
样本数据
Week Vol
2004-01-04 - 2004-01-10 15
2004-01-11 - 2004-01-17 12
2004-01-18 - 2004-01-24 10
2004-01-25 - 2004-01-31 10
2004-02-01 - 2004-02-07 9
2004-02-08 - 2004-02-14 9
我有两个问题
这是一个特定的周类型,例如ISO。
是否可以使用lubridate
或R中的其他一些函数将其转换为周数。问题是使用isoweek
和week
导致开始和结束日期的分周数
我有第二个数据集我想要匹配,但它使用不同的周数类型,所以我想将它们都转换为Google类型
感谢您的帮助
答案 0 :(得分:0)
此问题已解决here
您必须将日期转换为POSIXlt
对象,然后应用strftime
指定周%W
参数。在您的示例中,我将创建两个不同的变量,对应于每周的初始日期和最终日期。操作可能更容易。
Initial Final
1 04/01/2004 10/01/2004
2 11/01/2004 17/01/2004
3 18/01/2004 24/01/2004
4 25/01/2004 31/01/2004
5 01/02/2004 07/02/2004
6 08/02/2004 14/02/2004
另一种选择可能是创建一个具有周数(example$n_week = rep(1:6)
)