Rで計量社会学:第一回「オブジェクトの種類」

RはSPSSSAS等と異なり,本格的なプログラミング言語として設計されている。

プログラミング言語であれ自然言語であれ,言語であるかぎりは文法を覚えなければ使えない。

統計用「ソフトウェア」と統計用「プログラミング言語」の違いが,SPSS等からRへの乗り換えを難しくしているが,文法さえ覚えてしまえば,ずっと柔軟で効率的な分析ができる。しかも無料。

プログラミング言語人工言語なので,自然言語に比べれば圧倒的に論理的でわかりやすい。中学生レベルの英語よりもずっと簡単だ。そして,全ての文法を極める必要もない。論文で使う文法と小説で使う文法がちがうように,用途に合わせて必要な部分だけを学べばいい。Rは複素数なども扱えるが,計量社会学で複素数が必要になることはないだろう。

オブジェクトと変数

"abc"
#=> [1] "abc"
x <- "abc"
x
#=> [1] "abc"

1行目をRで実行すると,2行目のように表示される("#=>"は筆者が書き加えたものである。これは実行結果を表す記号とする)。3行目を実行しても何も表示されず,4行目を実行すると,5行目が表示される。
1行目の"abc"のようなものをオブジェクトと呼ぶ。これは操作を加えたいデータそのものだ。ただし,むき出しのオブジェクトのままでは扱いようがない。Rは2行目で未処理のままオブジェクトを返している。
そのため,オブジェクトには名札をつけ,そのオブジェクトを識別できるようにする必要がある。その名札を変数と呼び,オブジェクトに名札を付けることを代入もしくは付値と呼ぶ。3行目ではxという変数に"abc"というオブジェクトを代入している。4行目を実行すると,2行目と同じ結果が得られた。つまり,"abc"と入力することと,xと入力することが,同じ意味を持つようになった,ということがわかる。

オブジェクトの種類

is.vector(x)
#=> [1] TRUE
is.character(x)
#=> [1] TRUE

is.vector(x)というのは,「xがベクトルかどうか教えなさい」という命令だ。このようにコンピュータに対して命令を与えるための命令文を,関数と呼ぶ。xには"abc"が代入されている。6〜9行目より,"abc"はベクトルであり,さらに文字列ベクトルでもあることがわかった。このように,オブジェクトには種類があり,また文字列ベクトルはベクトルに含まれるというような,上下関係がある。オブジェクトに対して実行できる関数はオブジェクトの種類によって定まっており,例えば論理ベクトルにしか実行できない関数を文字列ベクトルに対して行うと,エラーが起こる。入門期には,このエラーではまることが多い。
オブジェクトには様々な種類があるが,計量社会学で必要なものは限られている。


  • ベクトル

    • 数値ベクトル is.numeric()

    • 文字列ベクトル is.character()

    • 因子ベクトル(順序付き,順序なし) is.factor()

    • 論理ベクトル is.logical()



  • リスト

    • リスト is.list()

    • データフレーム is.data.frame()




以上のオブジェクトが必須である。オブジェクトの種類を調べるための関数も同時に挙げた。これらのオブジェクトの扱い方を一通り覚えるころには,Rの基礎はほとんど身についていると思う。