!!!入門編 !!電卓として使う Rを起動すると不等号のようなマーク「>」が出る。これは、「ここに処理を入力して下さい」と促す記号で、プロンプトと言われるものだ。Rの処理は全てこのプロンプト部分に処理を入力しエンター(リターン)ーキーを押すことでその処理が実行される。 !四則演算 まずは四則演算から入ろう。プロンプトで、以下のように入力してみよう(#より右はコメントなので入力不要)。 1+2 # 1たす2 3-10 # 3ひく10 5*8 # 5かける8 3*4/5 # 3かける4わる5 2^10 # 2の10乗 四則演算に使う「+ - * /」などの記号を演算子と呼ぶ。それぞれ「和・差・積・商」を意味する。ここは表計算ソフトと全く同じなので、違和感なく使えるだろう。 !エラーメッセージ 演算子を誤って用いるとRが命令を解釈できないため、エラーメッセージが出る。例えば、わざと以下のように誤った式を入れて確かめてみよう。 3//10 # 3/10と入れるべきところ、誤って3//10と入力 エラーメッセージが出てくる。 :全てのエラーにメッセージが出るわけではないことに注意: エラーには三種類ある。 一つは、プログラムを書いたりコマンドを入力するときの「書き方」(文法)の誤りだ。二つ目は、意図していることと違う処理を書いてしまう誤りである。三つめは二つ目の誤りを正しいものとして人間が受け入れてしまうことである。 コンピュータの出すエラーメッセージはあくまでも文法上のエラーであって、論理的なエラーではないということには気をつけたい。例えば、正しくは足し算すべきところを誤って掛け算にしても、文法上はエラーではないのでメッセージは出てこない。論理エラーは処理ステップが増えれば増えるほど見つけにくくなり、処理量が増えて誤りの影響が大きく出てくるとようやく気が付くことがあるという、厄介な存在である。 三つめの誤りは、計算機の処理結果を妄信してはならないし、たとえ答えが正しくともそれが全ての選択肢ではない。人間が一番厄介な存在かもしれない。 !関数電卓として使ってみる Rにはよく使う演算が予め関数として組み込まれている。関数は、後で述べるように、組み込まれているもの以外にも自分で定義して作ることもできる。 :平方根を求める。: sqrt(2) # 人見ごろ sqrt(3) # 人並 sqrt(4) # 2 sqrt(5) # 富士山麓 :対数関数: log(2, 10) log2(10) log10(10) log(10) :三角関数: sin() cos() tan() :統計関数: mean() median() quantile() max() min() sd() var() pnorm() 監査においては四則演算以外の数値演算を使うことは、一部の金融商品の時価算定や年金数理計算などの領域を除き、あまりないかもしれない。 関数は上記の数値演算以外にも様々な使い方があり、Rを使いこなすことはすなわち関数を使いこなすことでもある。ここでは一般的な数値演算の解説に留め、後々、必要に応じた関数の説明をしていく。 !比較演算 演算の結果として真偽を返す。 * 真の場合 TRUE * 偽の場合 FALSE == != < > !!強力なグラフ描画機能 Rを使う理由として筆者が真っ先に挙げるのは、Rに備わる多彩なグラフ表現力だ。おそらく利用者の多くの同意を得るだろう。 グラフが表現しようとするのは、あらゆるものの「比較」である。端的には、折れ線グラフは同じ項目を時系列に並べて比較することで推移を表しているし、円グラフはある集合の要素の構成割合をパイの切り方(大きさ)で表すし、円全体の大きさは全体の推移を表すことも可能だ(但し、円での大きさ比較はあまり使うべきではない)。棒グラフは要素同士の量的な違いや、時系列での量の推移を表現している。 これまでの監査では、監査調書にグラフを載せる機会はあまりなかったが、今後はもっと多用されてよいだろう。特に監査対象領域全体を端的に示す方法として、グラフによる表現は最も優れているし、平均や分散、最大・最小などの基本統計量だけでは表現できないようなことも、グラフを用いれば全体の傾向を大雑把に掴むことができるので、分析的手続には最も適合する手段だろう。 また、データの傾向を掴めれば、一方でその傾向から外れたデータの存在を示すことも可能となるため、監査でよく言われる「異常点把握」にも適した方法となる。 !グラフ描画の注意点 グラフはそれ単独で存在し得るものではなくレジェンドが必要だ。 +データの仕様を明らかにする +縦軸・横軸が何を表しているかとその目盛り +色を多用しない +シンプルに作り端的に表現する +強調したり歪めたりしない(立体表現は注意) !グラフの原点としての度数分布(ヒストグラム)と散布図(スキャッタプロット) !バープロットと四分位点 !モザイクプロット !関数をグラフで表す !!!プログラミングしてみる :難しくない: いきなりプログラミングと言われて面食らうかもしれないが、その心配は無用だ。 前述したとおりRを使うことは関数を使いこなすことであり、関数を使いこなすことはプログラミングができるということとほぼ同じだ。但し、Rでいうところのプログラミングとは、アプリケーション開発のためのプログラミングではなく、あくまでもデータを処理するための一連の命令のことだ。 :仕事が変わる: 処理命令を一塊にしたものは、スクリプトとも称される。Rのコマンドや関数を覚え、さらにスクリプトをマスタすれば、今までとは全く違う仕事ができるようになるだろう。すなわちそれは、自分の仕事に付加価値をもたらすだけではなく、監査という仕事に新たな知見が加わって監査が進歩することを意味している。つまり、Rに限らずプログラミングを学ぶことは、データを扱う監査という仕事に携わる者の必要スキルでもあり責務の一つであるといっても過言ではない。 :他の人の仕事も変える: プログラミングとは再現可能な形で処理結果を残すこと。 ノウハウを形として蓄積し続けていくことができる。 !!変数への代入 !! 比較演算子と論理式 !!オブジェクトと変数 変数の型 文字 数値 日付 因子 論理 ヌル ベクトル 行列 データフレーム !データフレームにおけるデータの処理 !!拡張編 !スクリプト機能 !プレゼンテーション機能 !レポーティング機能