Table of Contents
Rにおけるデータの型
Rのオブジェクトには、主に次の4つのデータの型があります。
- character(文字列型)
- numeric(実数型)
- integer(整数型)
- logical(論理値型)
具体的にどのようなものか見ていきましょう。
character(文字列型)
「TOKYO」や「JAPAN」、「Taro」などの文字情報を指します。
データセットによっては、文章などが入っていることもあります。
numeric(実数型)
1.2345、-100.7、2/3などの数値データを指します。
integer(整数型)
-100、0、123456などの整数値データを指します。小数点以下の値はありません。
分数などの形で表されるデータも該当しません。
logical(論理値型)
TRUEかFAILSEのどちらかの値のみをとるデータ型です。
ExcelのIF関数をイメージするとよいでしょう。
データ型の変換
以上4種類のデータ型は、一方向に変換することができます。
character(文字列型)→ numeric(実数型) → integer(整数型) → logical(論理型)
なお、左から右にデータ型を変換する際には、変換時にデータの一部が失われてしまいます。
1.0を1に変換することはできますが、1を1.0に変換することはできない(または困難)、という意味です。
あるいは、TOKYOを100、Japanを200などの数値に変換することはできても、その逆方向の変換はできません(あるいは難しい)。
データの型変換に用いる関数
文字列型に変換する関数 | as.character() |
実数型に変換する関数 | as.numeric() |
整数型に変換する関数 | as.integer() |
論理値型に変換する関数 | as.logical() |
Rにおけるデータ構造
データ構造とは
データ構造とは、データがどのように入っているのかを定めるものです。
具体的なものを見ていくことでイメージがつかみやすくなるでしょう。
Rにおけるデータ構造の種類
ベクトル(vector)
次元:1次元 データ型:1種類 |
ベクトルは1次元の配列です。
数値や文字や論理値を要素として持つことができます。 ベクトル内の各要素は、全て同じ型の値になります。 ベクトルは c() という関数を使って作成できます。 |
> a = c( 10, -31, 25, 400 ) > a [1] 10 -31 25 400 |
行列(matrix)
次元:2次元 データ型:1種類 |
行列は2次元の配列です。
ベクトルと同様に、行列も全て同じ型の要素からなります。 行列は matrix() 関数を使って作成できます。 matrix() 関数の最初の引数にベクトルを入れます。 nrow と ncol で行(row)と列(column)の数を指定しましょう。 ※ byrow という引数を使うと、数値が並ぶ方向を切り替えることができます。 |
> a = matrix ( 1:21, nrow = 7, ncol = 3) > a [,1] [,2] [,3] [1,] 1 8 15 [2,] 2 9 16 [3,] 3 10 17 [4,] 4 11 18 [5,] 5 12 19 [6,] 6 13 20 [7,] 7 14 21 |
配列(array)
次元:多次元 データ型:1種類 |
配列は、行列と似ています。
ただし、行列と異なり、3次元以上の次元を持つことができます。 配列は array() という関数を使って作成できます。 |
> a = array( 1:30, dim = c( 5, 3, 2 ) ) > a , , 1[,1] [,2] [,3] [1,] 1 6 11 [2,] 2 7 12 [3,] 3 8 13 [4,] 4 9 14 [5,] 5 10 15, , 2 [,1] [,2] [,3] [1,] 16 21 26 [2,] 17 22 27 [3,] 18 23 28 [4,] 19 24 29 [5,] 20 25 30
|
リスト(list)
次元:n.a データ型:複数種類 |
リストは、様々な種類のデータ(オブジェクト)を持つことができます。
右の例では「数値、文字列、行列」を要素に持つリストを作成しています。 |
> a = list( 1:5, c( "ア", "イ", "ウ" ), matrix( 1:15, nrow=5, ncol = 3 ) ) > a [[1]] [1] 1 2 3 4 5[[2]] [1] "ア" "イ" "ウ"[[3]] [,1] [,2] [,3] [1,] 1 6 11 [2,] 2 7 12 [3,] 3 8 13 [4,] 4 9 14 [5,] 5 10 15 |
テーブル(table)
次元:多次元 データ型:整数値(integer) |
table 関数はベクトル等と組み合わせて使うことがあります。
table 関数を用いると、ベクトル等に含まれる値の出現数を数えることができます。 |
> a = c( 1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 1, 0, 1, 3, 5, 7, 9 ) > b = table( a ) > b a 0 1 2 3 4 5 6 7 9 1 3 2 3 2 3 2 2 1 |