Исправление многострочных заголовков в 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