Как транспонировать фрейм данных с помощью dplyr
Вы можете использовать следующий базовый синтаксис для транспонирования фрейма данных с помощью пакета dplyr в R:
library (dplyr) library (tidyr) df %>% pivot_wider(names_from = column1, values_from = column2)
Аргумент Names_from указывает значения, которые будут использоваться для имен столбцов в транспонированном фрейме данных, а аргумент Values_from указывает значения ячеек, которые будут использоваться в транспонированном фрейме данных.
Обратите внимание, что оператор канала ( %>% ) взят из пакета dplyr , а функция Pivot_wider() — из пакета Tidyr .
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: транспонировать фрейм данных с помощью dplyr
Предположим, у нас есть следующий кадр данных в R, содержащий информацию о различных баскетбольных командах:
#create data frame df <- data. frame (team=c('Mavs', 'Nets', 'Kings', 'Lakers'), dots=c(99, 104, 119, 113)) #view data frame df team points 1 Mavs 99 2 Nets 104 3 Kings 119 4 Lakers 113
Теперь предположим, что мы хотим транспонировать фрейм данных так, чтобы имена команд использовались в качестве имен столбцов, а значения точек использовались в качестве значений ячеек внутри фрейма данных.
Для этого мы можем использовать следующий синтаксис:
library (dplyr) library (tidyr) #transpose data frame df %>% pivot_wider(names_from = team, values_from = points) # A tibble: 1 x 4 Mavs Nets Kings Lakers 1 99 104 119 113
Фрейм данных был транспонирован таким образом, что названия команд используются в качестве столбцов, а значения точек используются в качестве значений ячеек во фрейме данных.
Обратите внимание, что результирующий фрейм данных теперь содержит 1 строку и 4 столбца.
Связано: введение в функцию Pivot_wider() в R.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи с помощью dplyr:
Как фильтровать строки, содержащие определенную строку, с помощью dplyr
Как рассчитать относительные частоты с помощью dplyr
Как выбрать первую строку по группе с помощью dplyr