Rの授業④

#集計結果を行列(matrix)にする
m_count <- cbind(
 M = table(maji$性別, maji$age)["男性",],
 F = table(maji$性別, maji$age)["女性",])
m_count

今回解析するコマンドはこちら!(授業で登場するほぼすべてのコマンドを解析しなければわかりません)

多分これは行列を作るコマンドなんだけどね、かっこよく言うとMatrix。

ここでまずわからないのが、tableをMatrixにする意味あるのかな?

tableとMatrixの出力結果を見ても変更する必要ないと思うんだけどな~

> table(maji$性別, maji$age)
      
       10代以下 2030405060代
  女性        3   99    9   13    9    3
  男性       35   63   26   15    9    1
> #集計結果を行列(matrix)にする
> m_count <- cbind(
+   M = table(maji$性別, maji$age)["男性",],
+   F = table(maji$性別, maji$age)["女性",])
> m_count
          M  F
10代以下 35  3
2063 99
3026  9
4015 13
509  9
601  3

授業の​関係で説明したいから、Matrixにしたのかな。それかデータ型の問題??

拉致が開かなそうだったので、先生に質問! 先生曰く、Matrix化した後に、行列同士の計算っていうのをやっているんだけど、計算をするためには、行列にしたほうが良いらしい。一応tableでも計算できるのだが、直感的に操作できない、複雑な操作になってしまうため、マトリックスに変換して計算をしているのだそう。

(Matrixと行列がイコールじゃなさそうだったのも、注意が必要?)

なるほど~あと、tableのデータ型は、table型らしい。table型≒集計した値、同じ特徴の値を集めたもの。そして、tableはベクトルのように値が挿入されている。よって、取り出して計算したりするのが複雑なのだろう。

以上のことから、tableの値をMatrixに変更したのでした。さらに、女性をFに変えていたりと、これもなんでって思ったけど次のステップで計算するときに、単純に記述できるからだ。

そして次、cbind関数がよくわかりませんでした。 cbindと似ているのがrbind。cbindはベクトルをcolumn(列)として連結し、rbindはベクトルをrows(行)にして連結するものだそう。要は、表の形の違いだね。

> x <- 1:4
> y <- 5:8
> z <- 9:12

> cbind(x, y, z)
    x y  z
[1,] 1 5  9
[2,] 2 6 10
[3,] 3 7 11
[4,] 4 8 12

> rbind(x, y, z)
 [,1] [,2] [,3] [,4]
x    1    2    3    4
y    5    6    7    8
z    9   10   11   12


この記事が気に入ったらサポートをしてみませんか?