Как вы рассчитываете интервал в неделях? - PullRequest
0 голосов
/ 25 октября 2018

мой x - 10-я неделя 2015 года, а y - 20-я неделя 2015 года.

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

Я хочу получить разницу между xy по количеству недель.Так что ху должно быть -10.Когда я пытаюсь использовать следующие коды, я получаю 0 или 0.

interval(x, y) / weeks(1)

это дает мне 0

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

это дает мне 0 с.

Что мне здесь не хватает?

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Если вам нужно решение 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
0 голосов
/ 25 октября 2018

Вам не нужно 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
...