web-dev-qa-db-ja.com

メルトを使用して各変数に名前を付ける方法

_ggplo2_のmelt関数を使用して_reshape2_でプロットするために再構成したい行列がありますが、カスタムヘッダー名を追加する方法が見つかりません。

_#Create toy data
MyData <- matrix(rnorm(15,500), nrow = 5, ncol = 3, dimnames = list(
    c("Unknown","0-4","4-9","10-14","15-19"),c("Area1","Area2","Area3")))

Dat2 <- melt(MyData, value.name = "Count")

#Reform data using melt, define Count as value name
MyData2 <- melt(MyData, value.name = "Count")
_

これで私は欲しいものを手に入れることができますが、その後の操作では_Var1_と_Var2_を参照する必要があります。

_variable.name_を使用して明示的に名前を付けてみました:

_MyData2 <- melt(MyData, value.name = "Count",
    variable.name = c("AgeGroup", "Geo"))
_

もちろん、colnames()を使用して事実にちなんで名前を付けることもできますが、meltを使用して名前を付けたいと思います。これは可能ですか?バックアップする必要がありますか?

11
Josh R.

varnames引数を使用します:

melt(MyData, value.name = "Count", varnames=c('AgeGroup', 'Geo'))
   AgeGroup   Geo    Count
1   Unknown Area1 501.6685
2       0-4 Area1 499.2812
3       4-9 Area1 500.3892
4     10-14 Area1 498.6380
5     15-19 Area1 500.5904
6   Unknown Area2 499.4590
7       0-4 Area2 500.5464
8       4-9 Area2 500.5635
9     10-14 Area2 500.7211
10    15-19 Area2 500.8381
11  Unknown Area3 498.8154
12      0-4 Area3 499.1818
13      4-9 Area3 499.6678
14    10-14 Area3 499.3586
15    15-19 Area3 500.3962

MyDataは行列(したがって、varnamesを使用するmelt.arrayを使用)であり、データフレーム(melt.data.framevariable.nameを使用)ではありません。 ?melt.array

14