1. ホーム
  2. r

[解決済み】データを長尺から長尺にリシェイプする方法

2022-03-26 10:46:24

質問

以下のデータフレームを並べ替えるのに苦労しています。

set.seed(45)
dat1 <- data.frame(
    name = rep(c("firstName", "secondName"), each=4),
    numbers = rep(1:4, 2),
    value = rnorm(8)
    )

dat1
       name  numbers      value
1  firstName       1  0.3407997
2  firstName       2 -0.7033403
3  firstName       3 -0.3795377
4  firstName       4 -0.7460474
5 secondName       1 -0.8981073
6 secondName       2 -0.3347941
7 secondName       3 -0.5013782
8 secondName       4 -0.1745357

各ユニークな "name" 変数が rowname で、その行に沿った観測値として "values" があり、colnames として "numbers" があるようにそれを再形成したいのです。このような感じです。

     name          1          2          3         4
1  firstName  0.3407997 -0.7033403 -0.3795377 -0.7460474
5 secondName -0.8981073 -0.3347941 -0.5013782 -0.1745357

を見てきました。 meltcast など、いくつか試してみましたが、どれもうまくいかないようです。

解決方法は?

使用方法 reshape 関数を使用します。

reshape(dat1, idvar = "name", timevar = "numbers", direction = "wide")