Можно ли рассчитать значения даты с прошлой недели, но привязанные к определенному дню? - PullRequest
0 голосов
/ 03 мая 2018

Я хочу динамически использовать значения даты предыдущей недели (с воскресенья по субботу) в заголовке графика.

Я хочу перечислить даты начала и окончания недели.

Например:

Start: 22nd April 2018
End: 28th April 2018

Title: "Conversations (22nd April 2018 - 28th April 2018)"

Если это слишком сложно, используя слова - особенно nd / th / rd / st - тогда я рад, что он тоже в формате DD/MM/YYYY.

Кроме того, я хочу привязать даты, чтобы независимо от того, когда я получу даты, они всегда будут относиться к предыдущей неделе и точным дням.

Например, независимо от того, запускаю ли я код во вторник, среду или пятницу, он всегда будет выбирать даты предыдущей недели, привязанные к воскресенью.

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 03 мая 2018

Использование аргумента while:

x1 <- Sys.Date()
x2 <- weekdays(x1)
while(x2 != "Sunday"){
  x1 <- x1 - 1
  x2 <- weekdays(x1)
  }
start_date <- x1 - 7
end_date   <- x1 - 1

Дает:

> start_date
[1] "2018-04-22"
> end_date
[1] "2018-04-28"

Вы можете использовать это, чтобы пройти любую дату и найти даты начала и окончания предыдущей недели:

x1 <- as.Date("2013-01-04")
x2 <- weekdays(x1)
while(x2 != "Sunday"){
  x1 <- x1 -1
  x2 <- weekdays(x1)
  }
start_date <- x1 - 7
end_date   <- x1 - 1

Еще лучше, превратить это в функцию :

week_findeR <- function(x = Sys.Date()){
  x1 <- as.Date(x)
  x2 <- weekdays(x1)
  while(x2 != "Sunday"){
    x1 <- x1 -1
    x2 <- weekdays(x1)
    }
  return(list(x1-7, x1-1))
  }

Предоставление вывода:

> week_findeR()  
[[1]]
[1] "2018-04-22"

[[2]]
[1] "2018-04-28"

> week_findeR("2018-07-04")
[[1]]
[1] "2018-06-24"

[[2]]
[1] "2018-06-30"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...