Обложка канала

R4marketing | канал Алексея Селезнёва | Язык R

Автор канала Алексей Селезнёв, руководитель отдела аналитики в Netpeak, автор R пакетов: ryandexdirect, rfacebookstat и др. В канале публикуются статьи, доклады, новости, заметки по языку R.

R4marketing | канал Алексея Селезнёва | Язык R

4 года назад
Открыть в
Исправление многострочных заголовков в R Пример таблицы с многострочном заголовке приведён на изображении к этому посту. Такого рода данные, содержащие многострочные заголовку не редко встречаются при чтении данных из электронных таблиц, или например PDF файлов. Функция mash_colnames() из пакета unheadr позволяет в одну строку кода, привести многострочные заголовки к нормальному виду, объединив их с помощью указанного разделителя. Пример: library(unheadr) # Генерируем таблицу # с многострочными заголовками rodents <- tibble::tribble( ~critter, ~tail, ~whisker, ~mass, NA, "length", "length", "grams", NA, "mm", "mm", NA, "rat", "71", "12", "91", "mouse", "58", "8", "47", "vole", "12", "5", "43" ) Входящие данные выглядят следующим образом: # A tibble: 5 × 4 critter tail whisker mass <chr> <chr> <chr> <chr> 1 NA length length grams 2 NA mm mm NA 3 rat 71 12 91 4 mouse 58 8 47 5 vole 12 5 43 Теперь используем функцию mash_colnames():
# объединяем многострочные заголовки из первых двух строк
rodents |> 
  mash_colnames(n_name_rows = 2)

Результат выглядит так (на сматрфоне возможно будет не очень понятно):
# A tibble: 3 × 4
  critter tail_length_mm whisker_length_mm mass_grams
  <chr>   <chr>          <chr>             <chr>     
1 rat     71             12                91        
2 mouse   58             8                 47        
3 vole    12             5                 43  

Аргументы функции
mash_colnames
(): df - таблица, имена столбцов которой надо объединить n_name_rows - К-во строк, которое необходимо свернуть в заголовок keep_names - Надо ли включать текущие имена столбцов, в составные имена столбцов на выходе sliding_headers - Заполнить столбцы без названия, именами слева направо, более подробно можете посмотреть в примерах к функции, или статье, на которую я дам ссылку в конце поста. sep - Разделитель, через который будут объединяться имена столбцов Ссылки: ● Материл заимствован из статьи "Fixing broken and irregular column headers" #заметки_по_R