0

次のようなデータがあります。

   total position division
 34        C      ATL
 34        C      CEN
 47        C       NE
 46        C       NW
 44        C      PAC
 42        C       SE
 57        D      ATL
 50        D      CEN
 44        D       NE
 52        D       NW
 42        D      PAC
 52        D       SE
 29        L      ATL
 34        L      CEN
 28        L       NE
 34        L       NW
 29        L      PAC
 24        L       SE
 26        R      ATL
 33        R      CEN
 25        R       NE
 29        R       NW
 24        R      PAC
 35        R       SE

それをカイ二乗検定に使用できる 2D 行列に変換したいと考えています。したがって、私の入力は次のようにする必要があります。

division        position
            C       D       L       R
ATL         34      57      29      26
CEN         34      50      34      33
NE          47      44      28      25
NW          46      52      34      29
PAC         44      42      29      24
SE          42      52      24      35

つまり、ベクトルの列ヘッダーの 1 つの値を作成し、他のベクトルの行ヘッダーの値を作成する必要があります。各行で発生する合計値は、結果の 2D マトリックスの行ヘッダーと列ヘッダーの交点に移動する必要があります (たとえば、NE と D の場合は 44)。

順序は実際には問題ではありません。最終的な行列では、任意のベクトルを行または列にすることができ、入力には常に、total、foo、および bar の 3 つの列があります。

どうすればこれを達成できますか? 私は R で手続き型の何かに頼る必要はありませんし、R での私のスキルは現時点ではいくらか不足しています。

ありがとう。

4

2 に答える 2

3

マトリックスを作成するだけの別のアプローチを次に示します。

matrix(df$total, ncol=4, dimnames=list(unique(df$division), unique(df$position)))

##      C  D  L  R
## ATL 34 57 29 26
## CEN 34 50 34 33
## NE  47 44 28 25
## NW  46 52 34 29
## PAC 44 42 29 24
## SE  42 52 24 35
于 2013-05-31T02:57:08.520 に答える