reshape2
R のパッケージに関するドキュメントや、ワイド フォーマットからロング フォーマットへ、またはその逆にデータを再構築するための他のパッケージを読んでいます。ただし、時間の新しい変数を作成し、ホルモン測定値を時間ごとにグループ化する必要があるため、この問題に行き詰まっています。R
以前は SPSS でこれを行っていましたが、他の多くの理由と同様に明らかな理由で SPSS に切り替えています。でこれを行う簡単な方法があるに違いないことは知っていますが、これR
を理解するのに苦労しています。
このプロジェクトのデータは、各患者について 5 つの異なる時点で 20 の異なるホルモンが測定された縦断的臨床研究からのものです (作成されたデータの例を以下に示します - a1 は来院 1 時のホルモン「a」、a2 はホルモン「a」です)。 ' 訪問 2 など)。研究には合計 20 人の患者がおり、それぞれがスプレッドシートに一意の識別子 (id) を持っています。ホルモン データ (ホルモン 'a'、ホルモン 'b' など) は、私のスプレッドシートでは次のように広い形式で配置されています。
> id a1 a2 a3 a4 a5 b1 b2 b3 b4 b5...
> 1 21 50 28 19 15 24 90 40 35 20...
> 2 23 45 15 22 20 25 45 34 31 22...
> 3 29 88 33 32 21 78 32 33 45 21...
...
以前に SPSS でこれを行ったとき、ソフトウェアは id 変数と縦方向の測定値を折りたたむための変数名を求めてきました。「訪問」と呼ばれる 1 から 5 までの新しい変数を作成します。これは、各ホルモンに関する 5 つの測定値に対応します。SPSS でこれを行うと、次のような長い形式で新しい出力が作成されます。
> id visit a b
> 1 1 21 24
> 1 2 50 90
> 1 3 28 40
> 1 4 19 35
> 1 5 15 20
> 2 1 23 25
> 2 2 45 45
> 2 3 15 34
> 2 4 22 31
> 2 5 20 22
> 3 1 29 78
...
reshape を使用してみましたが、関数は機能しているように見えますが、実際のデータを見ると、ワイド フォーマットとロング フォーマットの間で数値が混同されています。私は非常に基本的な間違ったことをしているに違いありませんが、それを理解するのに苦労しています。
d_long <- reshape(d, varying = c("a1", "a2", "a3", "a4", "a5",
"b1", "b2", "b3", "b4", "b5"), v.names = c("a", "b"),
idvar = "id", times = c(1:5), direction = "long")