だからここに私がやろうとしていることがあります。すべての結果が 1 つの列にリストされているデータ セットがありますが、それらが観察されたステップとそれらを観察するために使用された方法は別の列にあります。一意の識別子として扱っているサイトが複数あります。すべてのサイトに同じ数のステップまたは方法があるわけではなく、すべての方法がすべてのステップで実行されるわけではありません。たとえば、サイト a1 は各ステップでステップ s1 ~ s5 およびメソッド m1 ~ m25 を持ち、サイト a9 はステップ s1 ~ s15 を持ちますが、メソッド m3 ~ m9 のみを持ちます。基本的に、特定のサイト/ステップ/メソッドのデータが欠落している可能性があります。すべてのサイトにすべてのステップがあるわけではなく、すべてのステップにすべての方法があるわけではありません。生データセットは次のようになります。
site step method outcome
a1 S 1 m1 5
a1 S 1 m2 1
a1 S 2 m6 4
a2 S 1 m6 1a
a2 S 1 m4 3
a2 S 3 m7 2
a2 S 4 m2 7
a3 S 1 m1 2a
a3 S 1 m2 c11
a4 S 1 m4 2
a4 S 2 m2 5
a5 S 3 m3 6
a6 S 2 m1 7
a6 S 3 m4 8
メソッドに応じて、結果にはいくつかの数値と文字の値があります
ステップは唯一の実際の「時間」変数ですが、メソッドも同様に扱う必要があると感じています。現在のデータには多くの行といくつかの列があり、データの設定方法では分析を実行するのに問題があります。
私は次のようにreshapeを使用しました(他のreshapeステートメントを試しましたが、これはたとえば1つです)、残念ながら2つの時間変数を使用できません
mydata<-reshape(rawdata,idvar="site",timevar="step",direction="wide")
site method.S 1 outcome.S 1 method.S 2 outcome.S 2 method.S 3 outcome.S 3
1 a1 m1 5 m6 4 <NA> NA
4 a2 m6 1 <NA> NA m7 2
8 a3 m1 2 <NA> NA <NA> NA
10 a4 m4 2 m2 5 <NA> NA
12 a5 <NA> NA <NA> NA m3 6
13 a6 <NA> NA m1 7 m4 8
method.S 4 outcome.S 4
1 <NA> NA
4 m2 7
8 <NA> NA
10 <NA> NA
12 <NA> NA
13 <NA> NA
これはrからの出力です
サイトごとに 1 つの行と多くの列 (サイトが特定のステップで何も行われていなくても) で終了したいのは正しいことです。私はサイトごとに1行を取得しようとしていますが、結果列はすべての値が適切な列の下に表示されなくなります
site S1.m1.outcome S1.m2.outcome S1.m3.outcome ................ S9.m10.outcome
a1 1 c4.5 NA 3.6
したがって、基本的にはステップとメソッドの組み合わせごとに 1 つの列であり、それが多数の列であることはわかっていますが、これにより、ステップ間の比較がはるかに簡単になります。これは私の目標の 1 つであり、これを行う主なポイントは、与えられた方法で、t 検定などを使用してステップ間の結果の変化を検定し、平均値の違いを調べます。テストを行うためのより簡単な方法があると思いますが、私はまだ r に慣れておらず、まだ見つけていません。アドバイスありがとうございます