Добавить начальную и конечную метку недели ISO года ISO
Учтите следующее:
df <- structure(list(date = structure(c(17542, 17543, 17544, 17545,
17546, 17547, 17548, 17549, 17550, 17551, 17552, 17553, 17554,
17555, 17556, 17557, 17558, 17559, 17560, 17561, 17562, 17563,
17564, 17565, 17566, 17567, 17568, 17569), class = "Date"),
col1 = c(432L, 337L, 188L, 438L, 243L, 391L, 286L, 374L, 470L, 5L, 348L, 359L,
435L, 221L, 271L, 311L, 143L, 169L, 119L, 438L, 75L, 248L, 19L, 284L,
445L, 48L, 275L, 11L),
col2 = c(282L, 483L, 195L, 140L, 458L, 433L, 435L, 218L, 49L, 169L, 298L, 269L,
472L, 253L, 123L, 475L, 158L, 358L, 375L, 233L, 299L, 369L, 88L, 247L,
6L, 392L, 170L, 6L),
week = c(2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4,
4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6)),
.Names = c("date", "col1", "col2", "week"))
df <- as.data.frame(df)
> df
date col1 col2 week
1 2018-01-11 432 282 2
2 2018-01-12 337 483 2
3 2018-01-13 188 195 2
4 2018-01-14 438 140 2
5 2018-01-15 243 458 3
6 2018-01-16 391 433 3
7 2018-01-17 286 435 3
8 2018-01-18 374 218 3
9 2018-01-19 470 49 3
10 2018-01-20 5 169 3
11 2018-01-21 348 298 3
12 2018-01-22 359 269 4
13 2018-01-23 435 472 4
14 2018-01-24 221 253 4
15 2018-01-25 271 123 4
16 2018-01-26 311 475 4
17 2018-01-27 143 158 4
18 2018-01-28 169 358 4
19 2018-01-29 119 375 5
20 2018-01-30 438 233 5
21 2018-01-31 75 299 5
22 2018-02-01 248 369 5
23 2018-02-02 19 88 5
24 2018-02-03 284 247 5
25 2018-02-04 445 6 5
26 2018-02-05 48 392 6
27 2018-02-06 275 170 6
28 2018-02-07 11 6 6
Я хотел бы колонку, которая выплевывает строку, состоящую из недели ISO года ISO. Например, когда week
является 2
надо выплюнуть Jan 8, 2018 to Jan 14, 2018
,
Как это сделать? Я был бы особенно признателен за решение с использованием lubridate
, но я открыт для использования других пакетов, если это необходимо.
1 ответ
Решение
Так как вы хотите использовать lubridate
, следующее даст вам начало:
library(lubridate)
df %>% mutate(week_start = floor_date(date, "week"),
week_end = ceiling_date(date, "week"))
Я оставляю проблему форматирования и объединения этих граничных дат в строки, которые вы хотите, в качестве полезного учебного упражнения для lubridate
,