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 で他の一般的なタスクを実行する方法について説明します。

R で行をフィルターする方法
データフレームをRに転置する方法
R でデータ フレーム列の名前を変更する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です