お薦めHP:

RjpWiki
  (Rでエコノメトリクス)

R-Tips

Econometrics in R

EconWiki R

Statistics with R

Rで国際金融

A Brief Guide to R for Beginners in Econometrics

金明哲さんのHP

Atsushi Matsumoto's Website #Materials for R

石田基広さんのHP

久保拓弥さんのHP

R Graphical Manual

Japan.R (勉強会)

Tokyo.R (勉強会)

Tsukuka.R (勉強会)

Nagoya.R (勉強会)

Osaka.R (勉強会)

Okinawa.R (勉強会)


Rでは算術演算、論理演算、比較演算、行列の演算などの演算を行うことができる。

(1) 算術演算

 
 > (1+2-3*4)/5^6  ← 入力

[1] -0.000576  ← 出力

 > sqrt(2) 

[1] 1.414213

算術演算の表記

記号

意味

 

記号

意味

+

足し算

^

累乗

-

引き算

%/%

整数商

*

掛け算

%%

剰余

/

割り算

 

記号

意味

 

記号

意味

sqrt

√ の計算

cosh

ハイパボリックコサイン

abs

絶対値

tanh

ハイパボリックタンジェント

exp

2.71828...

asinh

sinh の逆関数

expm1

x の絶対値 が1よりかなり小さい時に exp(x)-1 をより正確に計算

acosh

cosh の逆関数

log

自然対数

atanh

tanh の逆関数

log10

常用対数 (底が10の対数)

logb

log と同じ

log2

底が2の対数

log1px

x の絶対値が1より(かなり)小さい時,log(1+x) をより正確に計算

sin

サイン・正弦関数

gamma

ガンマ関数

cos

コサイン ・ 余弦関数

lgamma

log(gamma(x)) と同じ

tan

タンジェント ・ 正接関数

ceiling

引数以上の最小整数

asin

sin の逆関数

floor

引数以下の最大整数:いわゆるガウス記号

acos

cos の逆関数

trunc

整数部分を求める

atan

tan の逆関数

round

四捨五入

sinh

ハイパボリックサイン

signif(x,a)

x を 有効桁で a 桁まで丸める
正・0・負を判定する sign とは異なるので注意


注意:以下の例は x に値 2 を代入する例で,代入した名前は後に入力する式の中で自由に使うことが出来る.

 
 x <- 2
 x
 
[1] 2
 
 x + 3
 
[1] 5

式の中でオブジェクトが使われた場合,それは代入された値を意味する.例えば x <- 2 とした後で x + 3 と入力すれば,これは 2 + 3 と認識される.また,式の中で使われた名前にその式を評価した結果を再度代入することも出来,古い値が捨てられて新しい値が保存される.さらに,変数の値を別の変数にコピーすることも出来る.またベクトル型のデータであっても代入することができる



引数に式や関数を指定すれば,それを評価した値が引数として使われる.また,引数が 2 個以上ある場合はコンマ  で区切って並べればよい.

  
 x <- 10                          # x に 10 を代入 
 log(x^2)                         # x^2 を計算した値を log に渡して計算 
 
[1] 4.60517 
 
 log(x^2, base=10)                # 底を指定する引数 base に 10 を指定して対数を計算 
 
[1] 2


(2) 比較演算子・比較演算関数

比較演算子には次のようなものがある.== は単なる = ではないことに注意 ( = は「代入」) .以下の演算子で ASCII コード順の辞書式での文字列の比較も出来る.

記号

意味

 

記号

意味

==

等号

>=

!=

>

<=

<



(3) 比較演算子・比較演算関数

論理演算子には次のようなものがある.

記号

意味

 

記号

意味

!

否定

&&

条件での論理積

&

論理積

||

条件での論理和

|

論理和

 xor()

排他的論理和

以下に例を示す.

 
 x <- 7
 (x > 2) && (x < 4)                           # 「2より大きい」かつ「4より小さい」 
 
[1] FALSE 
 
 if ( (x > 2) || (x < 8) ) print("True.")     # 「2より大きい」または「8より小さい」ならば... 
 
[1] "True."


条件分岐 : if ,else

ある条件で場合分けをして処理を行いたい場合は if 文,else 文を使う.以下の「条件式」には TRUE や FALSE の論理値を一つだけ返す式を入れなければならない.

 
 x <- 2
 if (x > 0) {                 # if ( 条件式 ) 
   sum(1:x)                   #  条件式が TRUE  のときに実行される部分 
 } else {
   x <- -x                    #  条件式が FALSE のときに実行される部分 
   sum(1:x)                   #  
 }


条件分岐 : switch

条件式の評価結果がケース 1 ,ケース 2 ,ケース 3 ,・・・ と多数あり,その結果によって場合分けを行いたい場合には switch 文を使う.例えば文字列で条件を分けた場合の switch 文は左下のような形になる.また,整数で条件を分けた場合の switch 文は右下のようになる.ただし,整数で条件を分けた場合は 「一致するものがない時に実行される部分」 は指定出来ない点,整数が 1 ... n でなければ NULL が返される点に注意.

 
 a <- 1
 switch(a,               # switch(文字列, 
   "1" = print("one"),   #  "1" のときに実行 
   "2" = print("two"),   #  "2" のときに実行 
   print("?")            #  一致するものが 
 )                       #      ない時に実行 
 
[1] "one" 
 
 a <- 2
 switch(a,               # switch(整数, 
   print("one"),         #   1 のときに実行 
   print("two")          #   2 のときに実行 
 )
 
[1] "two"


演算子 && ,||

条件式に2つ以上の条件が組み合わさった様な条件判定をさせたい場合は &&(かつ) や ||(または) を用いる.

 
 a <- 2
 b <- -3
 if ((a > 0) && (b > 0)) {
   c <- a*b
 } else c <- -a*b
 c
 
[1] 6
 
 a <- 2
 b <- -3
 if ((a < 0) || (b < 0)) {
   c <- -a*b
 } else c <- a*b
 c
 
[1] 6


繰り返し
for による繰り返し

ある処理を繰り返し行いたい場合,同じ文を何度も書く代わりに for 文を使う.

でリストの要素の一番目から順に要素をループ変数にスタックして for 文中の式を実行し,リストの要素が無くなった時点で for ループから抜けるという動作をする.よって繰り返し回数は「リストの要素数」となる.


例えば,ループ範囲に整数値のベクトルを指定すると,x に 1 を 5 回足すことが出来る.

 
 x <- 0                        
 for (i in 1:5) {              # for (ループ変数 in ベクトルやリスト) 
   x <- x + 1                  # ベクトルやリストの要素が空にならない限り式が繰り返される 
 }                             
 x
 
[1] 5


while による繰り返し

同じ繰り返しでも,ある条件が成り立っている間中ずっと「繰り返す式」を繰り返す場合は while 文を使う.ただし,条件式が TRUE しかとり得ない場合は,プログラムが永遠に実行され続けて暴走してしまうので注意が必要である.例えば以下を実行すると x の各要素に 1 を 5 回足すことが出来る.

 
 x <- 0
 while (x <= 5) {         # while ( 条件式 ) 
   x <- x + 1             # 条件式が TRUE である限り式が繰り返される 
 }                        # 最初に条件式が FALSE ならば式は 1 回も実行されない 
 x
 
[1] 6


break を用いて繰り返し文から抜ける

break 文によって,for や while 等の「繰り返し文」の途中で繰り返しから抜け,next 文によって,for や while 等の「繰り返し文」の途中で,強制的に次の「繰り返し文」に移ることが出来る

break 文が評価されると,その時点で最も内側の繰り返しから抜けることになる.また,next 文が評価された時点でそれ以降の処理は中止され,「繰り返し文」の先頭に戻って次の繰り返しが開始される.

 
 x <- 0
 for (i in 1:5) {
   x <- x + 1
   if (x == 3) break    # x が 3 になったら 
 }                      # for 文から抜ける 
 x
 
[1] 3 
 
 x <- 0
 for (i in 1:5) {
   next                 # x に 1 を足す前に 
   x <- x + 1           # 次の繰り返しが開始 
 }
 x
 
[1] 0


Back to R

Google


R 関連図書:


【初級編】 基本事項

【中級編】 Iの応用編

【初級編】 基本事項 [HP]

【初級編】 基本事項 [HP]

【中級編】 グラフィックス

【中級編】 いろいろ

【中級編】 計量経済学

【中級編】 計量経済学

【中級編】 計量経済学

【中級編】 計量経済学 [HP]

【中級編】 多次元データ一般

【中級編】 計量経済学 [HP]

【中級編】 時系列

【中級編】 時系列

【中級編】 ベイズ統計

【中級編】 ベイズ統計

【中級編】 ベイズ統計

【中級編】 ベイズ統計を用いたマーケティング

【中級編】 マーケティング

【中級編】 テキストマイニング

【中級編】 ネットワーク

【中級編】 パターン認識

【中級編】 マシーンラーニング