Как использовать функцию melt() в r
Вы можете использовать функцию Melt() пакета reshape2 в R для преобразования фрейма данных из широкого формата в длинный формат.
Широкий формат содержит значения, которые не повторяются в первом столбце.
Длинный формат содержит значения, повторяющиеся в первом столбце.
Например, рассмотрим следующие два набора данных, которые содержат одни и те же данные, выраженные в разных форматах:
Функция Melt() использует следующий базовый синтаксис для преобразования широкоформатного фрейма данных в длинный формат:
melt(df, id=' team ')
Аргумент id указывает, какую переменную использовать в качестве первого столбца фрейма данных, значения которого будут повторяться.
В следующем примере показано, как использовать эту функцию на практике.
Пример: как использовать Melt() в R
Предположим, у нас есть следующий кадр данных в R, который в настоящее время находится в широком формате:
#create data frame in wide format df <- data. frame (team=c('A', 'B', 'C', 'D'), dots=c(88, 91, 99, 94), assists=c(12, 17, 24, 28), rebounds=c(22, 28, 30, 31)) #view data frame df team points assists rebounds 1 A 88 12 22 2 B 91 17 28 3 C 99 24 30 4 D 94 28 31
Мы можем использовать функцию Melt() для быстрого преобразования фрейма данных в длинный формат:
library (reshape2) #use melt() to convert data frame from wide to long format long_df <- melt(df, id=' team ') #view long data frame long_df team variable value 1 A points 88 2 B points 91 3 C points 99 4 D points 94 5 A assists 12 6 B assists 17 7 C assists 24 8 D assists 28 9 A rebounds 22 10 B rebounds 28 11 C rebounds 30 12 D rebounds 31
Обратите внимание, что кадр данных теперь имеет длинный формат.
Столбцы очков , передач и подборов были сжаты в один столбец, называемый переменной , а их значения были сжаты в один столбец, называемый значениями .
Не стесняйтесь переименовывать столбцы результирующего фрейма данных, используя функцию name() :
#rename columns in long_df names(long_df) <- c(' team ', ' metric ', ' amount ') #view updated data frame long_df team metric amount 1 A points 88 2 B points 91 3 C points 99 4 D points 94 5 A assists 12 6 B assists 17 7 C assists 24 8 D assists 28 9 A rebounds 22 10 B rebounds 28 11 C rebounds 30 12 D rebounds 31
Обратите внимание, что столбцы были переименованы.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:
Как фильтровать строки в R
Как перенести фрейм данных в R
Как переименовать столбцы фрейма данных в R