トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン 印刷

オブジェクトの型

auditR

オブジェクトの型

オブジェクトにはそれぞれ「型」があります。

例えば、「日付」というデータを扱うことを考えて見ましょう。

表記の方法では、

  • 2015年1月5日
  • 2015/01/05
  • Jan.05, 2015
  • 平成乙未年睦月五日

など全く同じ日付を示していても、いろいろな表現が考えられます。文字だけでも、全角半角の違いや漢数字アラビア数字の違いが出ますが、単なる表記の違いにとどまらず、太陰暦やイスラム暦など暦の考え方が異なる場合も想定されます。

しかし、ある日時を示すデータであるという意味においては、計算上は全く同じように扱ってもらわないと、計算する上で一々表記の違いに対応しなければならないのは困り者です。

コンピュータ上では、日付はどういう表記の仕方にかかわらず、同じものとして扱って欲しいですね。言い換えれば、同じ「もの」としての日付オブジェクトは、あらかじめ定義されていて、表記方法にいろいろなバリエーションがあると考えたほうが便利です。

Rにはあらかじめ定義が示されているオブジェクトの型(=クラス)があります。

監査でよく用いるデータの型は次のようなものでしょう。

表記 意味
numeric 数値型 実数を扱います。数字が大きくなると指数表記になることもあります。
integer 整数型 金額を扱うには便利ですが、小数点には対応しないので、金利や外貨などは扱えません。
date 日時型 文字通り日時を示します。
difftime 経過時間 二つの日時型の日時の差分を示す型です。つまり、「10:15:50」が見た目は「10時15分50秒」という時刻のようであっても、この型であれば、「10時間15分50秒経過」を示しています。
character 文字型 文字を扱う型で最も一般的です。
factor 因子型 分類を示す型です。監査データでよく出てくる都道府県や商品カテゴリなどは、因子型としておきましょう。
logical 論理型 TRUEかFALSEの値しか持ちません。TないしFと略記もできます。
matrix 行列型 行列式を扱います。
dataframe データフレーム型 監査で頻出するデータの型で、スプレッドシートのイメージです。

型によって処理できる演算が異なります。したがって型を適切に選ぶことは後の処理を都合よく進める上でとても大事なことです。

例えば、数字型は四則演算はできますが、文字型では適いません。「2015/01/05」を文字型として定義すると、単なる文字の羅列になりますが、数値型にすると、2015÷1÷5が計算されてしまいます。日時型とすれば、曜日を求めたり表記を好みに合わせて変更することも可能です。

ベクトルという考え

Rの最も特徴的なデータの型はベクトル型です。ベクトルは様々なところで登場する、Rを使う上では最も基本となるオブジェクトの型で、数値型のオブジェクトの並んだものいう理解が早いでしょう。

Rでは、c()関数を使ってベクトルを生成します。

> vec <- c(1,3)  #例1
> vec
[1] 1 3
> vec1 <- c(1,3,5)  #例2
> vec1
[1] 1 3 5
> vec2 <- c(vec1, 6, 7, 8)  #例3
> vec2
[1] 1 3 5 6 7 8

例1では、高等学校で習った二次元ベクトルです。

ベクトルは矢印で表現していたように、方向と大きさを持ちます。したがって、それは二次元に限らず、三次元さらにはそれより上の次元のベクトルも存在します。

例2は、3次元のベクトルです。

例3のようにベクトルの中にベクトルを含めることも可能です。

データを処理するに当たって、このベクトル型を理解しておくことはとても重要です。

ベクトルの操作

ベクトルから一部を取り除く

以下のように

> 1:5
[1] 1 2 3 4 5
> 1:5[-4]
[1] 1 2 3 4 5
> (1:5)
[1] 1 2 3 4 5
> (1:5)[-4]  #4番めの要素を除く
[1] 1 2 3 5

データフレーム

監査で最も使うのが、データフレーム型です。

データフレームは厳密な定義より前に、概念はとても簡単で、まずはいわゆる表計算ソフトで扱うような表をイメージしてください。

データフレーム型は見た目は行列と似ていますが、行列型とは以下のような違いがあります。

  • 行列が行と列にそれぞれ数字や数字を意味する記号(数値型の変数ベクトル型変数)が並んでいるのに対し、要素としてのデータに文字型など数字以外が扱える。つまり、列の属性に応じたデータの型(例えば名前なら文字型、血液型ならカテゴリ型、など)を持つことができるというのが大きな特徴です。
  • 数学でいう行列と違い、行や列に任意の見出しをつけられる
このデータフレーム型を理解することはRを会計監査に用いる上では必須です。

一般にあふれているデータは意図せずともこのタイプになっています。会計監査で扱うデータは、もちろん金額が最も重要ですが、金額以外の項目として、取引日付、入出金区分、貸借区分、取引先名称、入力者などが入るので、必然的にデータフレームとして扱うことにならざるを得ません。


Last updated 2015-05-17 | auditR (c) N.Nawata