- reshapeパッケージと言うのがある
- 大きく2つの働きでできている
- melt系
- データフレーム、行列・アレイ、リストのように、カテゴリ(のセット)があって、それに帰属する値があるときに
- 「カテゴリ(のセット)」と値の組のにしてくれる
- やってみる
- データフレームの場合
df <- data.frame(year=sample(1:3,1000,replace=TRUE),class=sample(1:4,1000,replace=TRUE),w = rnorm(1000,60,10))
molten.df <- melt(df,id=c("year","class","w"))
cast(molten.df,year~class,mean)
> cast(molten.df,year~class,mean)
Using w as value column. Use the value argument to cast to override this choice
year 1 2 3 4
1 1 61.39556 62.59706 59.72044 59.87468
2 2 59.47206 59.42091 60.54629 57.89266
3 3 58.56621 58.28452 59.95029 59.24901
>|r|
cast(molten.df,~year,mean)
> cast(molten.df,~year,mean)
Using w as value column. Use the value argument to cast to override this choice
value 1 2 3
1 (all) 60.93173 59.31619 59.06995
library(reshape)
m <- matrix(1:20,4,5)
molten.m <- melt(m)
modlten.m
> molten.m
X1 X2 value
1 1 1 1
2 2 1 2
3 3 1 3
4 4 1 4
5 1 2 5
6 2 2 6
7 3 2 7
8 4 2 8
9 1 3 9
10 2 3 10
11 3 3 11
12 4 3 12
13 1 4 13
14 2 4 14
15 3 4 15
16 4 4 16
17 1 5 17
18 2 5 18
19 3 5 19
20 4 5 20
cast(molten.m,~X1,mean)
apply(m,1,mean)
boxplot(molten.m$value~molten.m$X1)
boxplot(t(m))
||
--行列ではなくてリストだったら
>|r|
k <- list()
k[[1]] <- rnorm(100,0,3)
k[[2]] <- rnorm(50,1,1)
k[[3]] <- rnorm(150,5,2)
molten.k <- melt(k)
boxplot(k)
boxplot(molten.k$value~molten.k$L1)
lapply(k,mean)