サブゼミ資料
2021/04/03
Chapter 1 イントロダクション
1.1 環境構築
こちらの資料をもとにR studioのセットアップをしてみてください。R studio cloudも使い勝手がいいです。
1.2 基本的な計算
まずは、基本的な計算をRでやってみましょう。電卓みたいに使ってみます。足し算と引き算はイメージ通りだと思います。
## [1] 2
## [1] 0
掛け算は×ではなくて、*
。割り算は÷ではなくて、/
です。ちなみに、商は%/%
、余りは%%
## [1] 2
## [1] 2
## [1] 2
## [1] 1
累乗は^
、ルートはsqrt()
です。
## [1] 8
## [1] 2
計算結果をオブジェクトに代入することもできます。(計算結果に名前をつけるイメージ)下の場合だと、2+2
の結果をa
というオブジェクトに代入しているイメージです。Rで代入する時には、<-
がよく使われます。=
でも動きます。
## [1] 4
1.3 ベクトル
## [1] 1 2 3 4
sum()
を使うと、そのベクトルの合計値が取得できます。
## [1] 10
mean()は平均値、median()は中央値です。
## [1] 2.5
最大値、最小値もそれぞれmax()
、min()
で取得出来ます。print()
を使うと、その名の通り結果を出力出来ます。
## [1] 4
## [1] 1
ベクトルの要素として、文字もOKです。文字の場合は数字やオブジェクトと区別するために""
で囲います。
## [1] "Mario" "Luigi" "Princess Peach"
[]
でベクトルの要素を抽出することも出来ます。
## [1] "Luigi"
複数の要素も抽出可能です。
## [1] "Mario" "Princess Peach"
## [1] "Luigi" "Princess Peach"
ベクトルの要素の数を取得する際には、length()
を使います
## [1] 3
行列みたいに計算も出来ます。ベクトルの要素ごとに計算されます。行列積は%*%
です。
## [1] 6 8 10 12
## [1] -4 -4 -4 -4
## [1] 5 12 21 32
## [,1]
## [1,] 70
1.4 データフレーム
データフレームは列方向にベクトルを集めたものです。エクセル上でよくみるデータのことです。以下の例だと、id(学生番号)、height(身長)、sex(性別)ベクトルを列方向に集めています。
idベクトルにはIDという列名を、heightベクトルにはHEIGHTという列名をつけてデータフレームにしています。データフレームを作る時にはdata.frame()
を使います。
## ID HEIGHT SEX
## 1 1 180 男性
## 2 2 170 男性
## 3 3 160 女性
データフレームから任意の列を抽出する際には、以下のように$
を使います。
## [1] 1 2 3
このデータフレームを分析していくことが実証分析の基本的な作業になります。実際に分析手法を学ぶ際に、このデータフレームの扱い方も学んでいきましょう。
1.5 データの型
1.5.1 数値
データには型というものが存在します。class()
を使うと型がわかります。numeric
は数値です。計算する時にはデータの型は数値である必要があります。
## [1] "numeric"
1.5.2 文字
数字の5でも、時には文字として扱いたい時もあるはずです。この場合は、""
で囲ってあげます。この型をclass()
でみてみると、character
と表示され、文字列として認識されていることがわかります。
## [1] "character"
文字列を数値として扱いたい時はas.numeric()
、その逆はas.numeric()
で出来ます。
## [1] 5
## [1] "numeric"
1.5.3 論理演算子
最後に、論理演算子を紹介します。これは、TRUE
とFALSE
の2値をとる型で、class()
でみてみるとlogical
と表示されます。YES, NOで答えられるデータを扱う際に使うことが多いです。
## [1] "logical"
先ほど、計算するにはデータの型が数値である必要があるという話がありましたが、実は論理演算子も計算することが出来ます。例えば、合計を算出する関数であるsum()
を使うと、以下のようにTRUE
の数が集計されます。
## [1] 2
==
で、一致しているかどうかを判定する。一致してたらTRUE, 一致しなかったらFALSEで返ってきます。
## [1] FALSE
なぜか数字と文字列の区別はないみたいです。
## [1] TRUE
数字に関しては、不等号を使って大小判定も出来ます。
## [1] FALSE
## [1] TRUE