Шпаргалка по R

Полезные приёмы, лайфхаки и просто напоминалка базовых функций для написания скриптов.

Определение первого и последнего числа месяца:

# определяем функцию
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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *