[R] R で行列計算

2014年12月6日

 行列計算をする際の簡単なメモ

  • 行列の作成

     行列を作るには、matrix() にベクトルデータ(一次元配列データ)を渡すことで行います。

    > a <- matrix( c(1,2,3,4,5,6),nrow = 2,ncol = 3)
    > a
         [,1] [,2] [,3]
    [1,]    1    3    5
    [2,]    2    4    6
    

     横走査で配置したい場合は、byrow = TRUE、を追加で指定します。

    > matrix(c(101:106),nrow = 2, ncol = 3, byrow = TRUE)
         [,1] [,2] [,3]
    [1,]  101  102  103
    [2,]  104  105  106
    
  • 行列の和
    > a + a
         [,1] [,2] [,3]
    [1,]    2    6   10
    [2,]    4    8   12
    
  • 行列の項目ごとの積
    > a * a
         [,1] [,2] [,3]
    [1,]    1    9   25
    [2,]    4   16   36
    
  • 行列積
    > a %*% a   # 求められない
    Error in a %*% a : non-conformable arguments
    
    > c <- matrix( c(3,4,3,4,3,4), nrow = 3, ncol = 2)
    > c
         [,1] [,2]
    [1,]    3    4
    [2,]    4    3
    [3,]    3    4
    
    > d = a %*% c
    > d
         [,1] [,2]
    [1,]   30   33
    [2,]   40   44
    
  • スカラー積を求める
    > d * 2
         [,1] [,2]
    [1,]   60   66
    [2,]   80   88
    
  • 逆行列を求める
    > e <- matrix( c(1,2,3,4),nrow = 2,ncol = 2)
    > e
         [,1] [,2]
    [1,]    1    3
    [2,]    2    4
    
    > f = solve(e)
    > f
         [,1] [,2]
    [1,]   -2  1.5
    [2,]    1 -0.5
    

     元の行列と単位行列の行列積をとると、単位行列になります。(計算誤差があるので正確に 1 と 0 ではない場合がある点に注意)

    > e %*% f
         [,1] [,2]
    [1,]    1    0
    [2,]    0    1
    





カテゴリー: Program, R

Follow comments via the RSS Feed | Leave a comment | Trackback URL

コメントを投稿する

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


«   »
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org