データを長い形式から広い形式に再形成する方法 質問する

データを長い形式から広い形式に再形成する方法 質問する

次のデータフレームを並べ替える際に問題が発生しています。

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          1          2          3         4
1  firstName  0.3407997 -0.7033403 -0.3795377 -0.7460474
5 secondName -0.8981073 -0.3347941 -0.5013782 -0.1745357

meltおよび他のいくつかのものを調べましたcastが、どれもうまく機能しないようです。

ベストアンサー1

使用reshape関数:

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

おすすめ記事