您如何计算周数间隔?

时间:2018-10-25 16:48:39

标签: r date lubridate

我的x是2015年的第10周,而y是2015年的第20周。

x<-as.Date("201510", "%Y%U")
y<-as.Date("201520", "%Y%U")

我想知道x-y之间的周数差。 因此x-y应该为-10。当我尝试以下代码时,得到0或0。

interval(x, y) / weeks(1)

这给了我0

as.period(x- y, unit = "weeks")

这给了我0分。

我在这里想念什么?

2 个答案:

答案 0 :(得分:2)

您不需要lubridate。这是一个base R选项:

## you need to define a week day to be able to compute the time interval
x <- as.Date("2015107", "%Y%U%u") # by appending 7 (and %u) to the string, we are taking the last day of the week (i.e. sunday)
y <- as.Date("2015207", "%Y%U%u")
## time interval
difftime(x, y, units = "weeks") 
# Time difference of -10 weeks
as.numeric(difftime(x, y, units = "weeks"))
# [1] -10

答案 1 :(得分:1)

如果您确实想要lubridate解决方案,请使用dweeks代替weeks

x<-as.Date("2015107", "%Y%U%u") # using @ANG's edit to make the dates distinct
y<-as.Date("2015207", "%Y%U%u")

library(lubridate)
interval(y, x) / dweeks(1)
[1] -10