Rでmelt()関数を使用する方法
R のreshape2パッケージのMelt()関数を使用して、データ フレームをワイド フォーマットからロング フォーマットに変換できます。
ワイド形式には、最初の列で繰り返されない値が含まれます。
長い形式には、最初の列で繰り返される値が含まれます。
たとえば、異なる形式で表現されたまったく同じデータが含まれる次の 2 つのデータセットについて考えてみましょう。
Melt()関数は、次の基本構文を使用して、ワイド フォーマットのデータ フレームをロング フォーマットに変換します。
melt(df, id=' team ')
id引数は、値が繰り返されるデータ フレームの最初の列として使用する変数を指定します。
次の例は、この関数を実際に使用する方法を示しています。
例: R での Melt() の使用方法
現在ワイド形式である次のデータ フレームが 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
データ フレームが長い形式になっていることに注意してください。
ポイント、アシスト、およびリバウンドの列はすべて、 variableという 1 つの列に圧縮されており、それらの値はすべて、 valuesという 1 つの列に圧縮されています。
names()関数を使用して、結果のデータ フレームの列の名前を自由に変更できます。
#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 で他の一般的なタスクを実行する方法について説明します。