R の使い方その2
ベクトル・行列演算


□ ベクトルの要素に対する演算

  ベクトルの定義

    > (v1 <- c(1, 2, 3))
    > (v2 <- t(c(1, 2, 3)))

  数学関数

    > sin(v1)
    > cos(v2)
    > v1 ^ 2
    > 2 ^ v2

□ ベクトルに対する演算

  総和

    > sum(v1)

  平均

    > mean(v2)

  標準偏差

    > sd(v1)

□ 行列の要素に対する演算

  行列の定義

    > (M <- matrix(c(1, 2, 3, 4, 5, 6, 7, 9, 8), 3, 3))

  数学関数

    > sin(M)
    > sqrt(M)

  行列の各行・列の取り出し

    > M[1,]
    > M[,1]
    計算結果は次元が指定されないベクトルになる。

  行列の各行・列に対する演算

    > colSums(M)
    > rowSums(M)
    > colMeans(M)
    > rowMeans(M)
    計算結果は次元が指定されないベクトルになる。

□ 行列に対する演算

  行列全体の要素の総和・平均

   > sum(M)
   > mean(M)

  行列式

    > det(M)

  逆行列

    > solve(M)
    > solve(M) %*% M

  転置

    > t(M)

  複素共役転置

    > t(Conj(M))

  固有値と固有ベクトル

    > eigen(M)
    > eigen(M)$values
    > eigen(M)$vectors

    $values  に固有値のベクトルが返る。
    $vectors に固有ベクトルを列とする行列が返る。

□ ベクトル・行列の生成

  ベクトルの生成

    > (v <- 1:10)
    > (v <- seq(1, 10, by = 2))
    > (v <- seq(0, 1, length.out = 11))
    > (v <- rep(0, 3))
    > (v <- runif(10))
    > (v <- rnorm(10))

    runif は一様分布乱数を rnorm は正規分布乱数(N(0,1))を成分にする
    ベクトルを生成する。

  行列の生成

    > (M <- diag(1, 3))
    > (M <- diag(c(1, 2, 3)))
    > (M <- matrix(rep(0, 12), 3, 4))
    > (M <- matrix(rep(1, 12), 4, 3))


GNU R
naniwa@rbt.his.u-fukui.ac.jp