#mysql #r #lubridate
#mysql #r #lubridate
Вопрос:
У меня есть dbReadtable, который я хочу отсортировать по дате недели. Моя таблица выглядит следующим образом:
Id Date Number
1 2020-11-01 1
2 2020-11-03 3
3 2020-11-02 4
4 2020-11-01 2
5 2020-11-02 4
6 2020-11-03 3
7 2020-11-06 7
8 2020-11-05 4
9 2020-11-08 2
Я хочу, чтобы результат выглядел примерно так:
Day Number
Sunday 5
Monday 8
Tuseday 6
Thursday 4
Friday 7
Для этого я хочу использовать $wday в библиотеке lubridate.
Мой код выглядит следующим образом:
data <- dbReadTable(con, "observations")
Как мне это решить?
Ответ №1:
Используя data.table
и lubridate
и предполагая, что дата уже является датой (а не строкой).
library(lubridate)
library(data.table)
data <- dbReadTable(con, "observations")
data[, by=.(Day=wday(Date, label=TRUE, abbr=FALSE, locale="C")), .(Number=sum(Number))]
# Day Number
#1: Sunday 5
#2: Tuesday 6
#3: Monday 8
#4: Friday 7
#5: Thursday 4
Я добавил locale, чтобы возвращать английские имена для дней (я француз и получаю французские имена :-).