0

R でデータを再形成するのは初めてで、reshape() (または別のパッケージ) を使用してパネル データを作成する方法がわかりません。地理的単位ごとに 2 つの時間観測がありますが、それぞれの時間観測は変数でフォーマットされます。例えば:

subdistrict <- 1:4
control_t1 <- 5:8
control_t2 <- 9:12
motivation_t1 <- 12:15
motivation_t2 <- 16:19

data_mat <- as.data.frame(cbind(subdistrict, control_t1, control_t2, motivation_t1, motivation_t2))

data_mat
  subdistrict control_t1 control_t2 motivation_t1 motivation_t2
1           1          5          9            12            16
2           2          6         10            13            17
3           3          7         11            14            18
4           4          8         12            15            19

ここで、control_t1 と control_t2 はそれぞれ異なる期間を指します。私の目標は、時間変数を確立できるようにデータを再形成し、名前付き変数を折りたたんで次のフレームを生成することです。

  subdistrict time control motivation
1           1            1         12            
1           2            5         16
2           1            2         13            
2           2            6         17
3           1            3         14            
3           2            7         18
4           1            4         15            
4           2            8         19

新しい時間変数を作成し、変数を折りたたんで名前を変更してデータを再形成する方法がわかりません。助けてくれてありがとう。

4

2 に答える 2

2

reshape()オプションで関数を使用するだけdirection = "long"です。コードは次のとおりです。

district <- 1:4
control_t1 <- 5:8
control_t2 <- 9:12
relax_t1 <- 12:15
relax_t2 <- 16:19
data_mat <- as.data.frame(cbind(district, control_t1, control_t2, relax_t1, relax_t2))
reshape(data = data_mat, direction = "long", idvar = "district", timevar = "time", varying = list(c(2:3), c(4:5)))
#     district time control_t1 relax_t1
# 1.1        1    1          5       12
# 2.1        2    1          6       13
# 3.1        3    1          7       14
# 4.1        4    1          8       15
# 1.2        1    2          9       16
# 2.2        2    2         10       17
# 3.2        3    2         11       18
# 4.2        4    2         12       19

詳細については、R プログラミングのウィキブックを参照してください。

于 2013-07-26T17:55:19.127 に答える