Полезные приёмы, лайфхаки и просто напоминалка базовых функций для написания скриптов.
Определение первого и последнего числа месяца:
# определяем функцию
som <- function(x) {
as.Date(format(x, "%Y-%m-01"))
}
end_date <- som(Sys.Date()) - 1 # последний день месяца
start_date <- som(som(Sys.Date()) - 1) # первый день месяца
Регулярные выражения в R
Нужен пакет:
library(stringr)
str_extract(my_data,'\\d{1,2}S') # в R используется двойной слэш!
Секунды в длительность вида: ЧЧ:ММ:СС
Стандартными средствами R
# определяем функцию
duration <- function(t){
paste(formatC(t %/% (60*60), width = 2, format = "d", flag = "0")
,formatC(t %/% 60 %% 60, width = 2, format = "d", flag = "0")
,formatC(t %% 60, width = 2, format = "d", flag = "0")
,sep = ":"
)
}
# вызываем функцию
my_data <- duration(my_data)
Группировка данных (SQL GROUP BY)
Стандартными средствами R
result <- my_data_frame %>% group_by(column1,column2,..) %>% summarize (group1 = sum(column3), group2 = mean(column4),....)
Pivot
Нужен пакет tidyr. Входит в dplyr, отдельно можно не устанавливать.
result <- tidyr::pivot_wider(data = result, id_cols = c(column_main), names_from = column_with_name, values_from = column_with_value, values_fn = sum)
Перезапись N/A в ноль
result[is.na(result)] <- 0