R melt() および cast() 関数 - R でのデータの再形成
こんにちは、読者の皆さん!この記事では、R プログラミングの重要な概念、つまり R のmelt() および cast() 関数を使用したデータの再形成について詳しく見ていきます。
R の Melt() および cast() 関数は、データ フレーム内のデータをカスタマイズされた形状に再形成するのに役立ちます。
Rのmelt()関数とcast()関数の操作
両方の機能を詳細に理解しましょう。どうぞ!
I. R メルト() 関数
R プログラミングの melt() 関数
は組み込み関数です。これにより、ユーザー定義の方法でデータ フレームを再形成および延長できます。データ値を長いデータ フレーム形式で編成します。
以下の構文を見てください!
構文:
melt(data-frame, na.rm = FALSE, value.name = “name”, id = 'columns')
NA 値が無視されないことを意味するデフォルト値として、na.rm=FALSE とともに、データ フレームを関数に再整形して渡します。
さらに、新しい変数/列名を value.name パラメータに渡して、関数から取得した細長い値を格納します。
ID パラメータは、再形成が行われるデータ フレームの列名に設定されます。
例:
この例では、ライブラリ「MASS、reshape2、および reshape」を使用します。データ フレームを作成したら、列 A と列 B に関してデータ フレームに Melt() 関数を適用します。
rm(list = ls())
install.packages("MASS")
install.packages("reshape2")
install.packages("reshape")
library(MASS)
library(reshape2)
library(reshape)
A <- c(1,2,3,4,2,3,4,1)
B <- c(1,2,3,4,2,3,4,1)
a <- c(10,20,30,40,50,60,70,80)
b <- c(100,200,300,400,500,600,700,800)
data <- data.frame(A,B,a,b)
print("Original data frame:\n")
print(data)
melt_data <- melt(data, id = c("A","B"))
print("Reshaped data frame:\n")
print(melt_data)
出力:
[1] "Original data frame:\n"
A B a b
1 1 1 10 100
2 2 2 20 200
3 3 3 30 300
4 4 4 40 400
5 2 2 50 500
6 3 3 60 600
7 4 4 70 700
8 1 1 80 800
[1] "Reshaped data frame:\n"
> print(melt_data)
A B variable value
1 1 1 a 10
2 2 2 a 20
3 3 3 a 30
4 4 4 a 40
5 2 2 a 50
6 3 3 a 60
7 4 4 a 70
8 1 1 a 80
9 1 1 b 100
10 2 2 b 200
11 3 3 b 300
12 4 4 b 400
13 2 2 b 500
14 3 3 b 600
15 4 4 b 700
16 1 1 b 800
Ⅱ. R キャスト() 関数
上記のように、melt() 関数を適用した後、データ フレームは細長いデータ フレームに変換されます。データ フレームのほぼ元の自然な形状を取り戻すために、R cast() 関数
が使用されます。
cast() 関数は、集約された関数と数式をパラメーターとして受け取り、(ここで、数式は、再形成後にデータが表現される方法です)、引き伸ばされた、または解体されたデータ フレームをキャストします。ほぼ集約された形式のデータ フレーム。
構文:
cast(data, formula, aggregate function)
キャスト()関数に、平均、合計などの利用可能な集計関数を提供できます。
例:
rm(list = ls())
library(MASS)
library(reshape2)
library(reshape)
A <- c(1,2,3,4,2,3,4,1)
B <- c(1,2,3,4,2,3,4,1)
a <- c(10,20,30,40,50,60,70,80)
b <- c(100,200,300,400,500,600,700,800)
data <- data.frame(A,B,a,b)
print("Original data frame:\n")
print(data)
melt_data <- melt(data, id = c("A"))
print("Reshaped data frame after melting:\n")
print(melt_data)
cast_data = cast(melt_data, A~variable, mean)
print("Reshaped data frame after casting:\n")
print(cast_data)
上記のように、cast() に集約関数として mean を渡し、表現の形式として A 変数に相当する変数を設定しました。
出力:
[1] "Original data frame:\n"
A B a b
1 1 1 10 100
2 2 2 20 200
3 3 3 30 300
4 4 4 40 400
5 2 2 50 500
6 3 3 60 600
7 4 4 70 700
8 1 1 80 800
[1] "Reshaped data frame after melting:\n"
A variable value
1 1 B 1
2 2 B 2
3 3 B 3
4 4 B 4
5 2 B 2
6 3 B 3
7 4 B 4
8 1 B 1
9 1 a 10
10 2 a 20
11 3 a 30
12 4 a 40
13 2 a 50
14 3 a 60
15 4 a 70
16 1 a 80
17 1 b 100
18 2 b 200
19 3 b 300
20 4 b 400
21 2 b 500
22 3 b 600
23 4 b 700
24 1 b 800
[1] "Reshaped data frame after casting:\n"
A B a b
1 1 1 45 450
2 2 2 35 350
3 3 3 45 450
4 4 4 55 550
結論
以上で、このトピックは終了です。ご不明な点がございましたら、お気軽に以下にコメントしてください。
それまで、Happy Learning!! :)
参照:
- https://www.rdocumentation.org/packages/reshape2/versions/1.4.4/topics/melt
- https://www.rdocumentation.org/packages/reshape2/versions/1.4.4/topics/cast