0

这可能是一个非常基本的问题,我下载了一个 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 中的或其他函数将其转换为周数。问题是使用isoweekweek导致开始日期和结束日期的周数分开

我有第二个要匹配的数据集,但它使用不同的周数类型,所以我想将它们都转换为 Google 类型

谢谢您的帮助

4

1 回答 1

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))

于 2016-06-23T14:14:00.423 回答