Chapter 1 イントロダクション

1.1 環境構築

こちらの資料をもとにR studioのセットアップをしてみてください。R studio cloudも使い勝手がいいです。

1.2 基本的な計算

まずは、基本的な計算をRでやってみましょう。電卓みたいに使ってみます。足し算と引き算はイメージ通りだと思います。

1+1
## [1] 2
1-1
## [1] 0

掛け算は×ではなくて、*。割り算は÷ではなくて、/です。ちなみに、商は%/%、余りは%%

1*2
## [1] 2
4/2
## [1] 2
5%/%2
## [1] 2
5%%2
## [1] 1

累乗は^、ルートはsqrt()です。

2^3
## [1] 8
sqrt(4)
## [1] 2

計算結果をオブジェクトに代入することもできます。(計算結果に名前をつけるイメージ)下の場合だと、2+2の結果をaというオブジェクトに代入しているイメージです。Rで代入する時には、<-がよく使われます。=でも動きます。

a <- 2+2
a
## [1] 4

1.3 ベクトル

a <- c(1, 2, 3, 4)
a
## [1] 1 2 3 4

sum()を使うと、そのベクトルの合計値が取得できます。

sum(a)
## [1] 10

mean()は平均値、median()は中央値です。

mean(a)
## [1] 2.5

最大値、最小値もそれぞれmax()``min()で取得出来ます。print()を使うと、その名の通り結果を出力出来ます。

print(max(a))
## [1] 4
print(min(a))
## [1] 1

ベクトルの要素として、文字もOKです。文字の場合は数字やオブジェクトと区別するために""で囲います。

vec <- c("Mario", "Luigi", "Princess Peach")
vec
## [1] "Mario"          "Luigi"          "Princess Peach"

[]でベクトルの要素を抽出することも出来ます。

vec[2]
## [1] "Luigi"

複数の要素も抽出可能です。

vec[c(1, 3)] # 1つ目と3つ目
## [1] "Mario"          "Princess Peach"
vec[2:3] # 2~3つ目
## [1] "Luigi"          "Princess Peach"

ベクトルの要素の数を取得する際には、length()を使います

length(vec)
## [1] 3

行列みたいに計算も出来ます。ベクトルの要素ごとに計算されます。行列積は%*%です。

a <- c(1, 2, 3, 4)
b <- c(5, 6, 7, 8)
print(a+b)
## [1]  6  8 10 12
print(a-b)
## [1] -4 -4 -4 -4
print(a*b)
## [1]  5 12 21 32
print(a%*%b)
##      [,1]
## [1,]   70

1.4 データフレーム

データフレームは列方向にベクトルを集めたものです。エクセル上でよくみるデータのことです。以下の例だと、id(学生番号)、height(身長)、sex(性別)ベクトルを列方向に集めています。

id <- c(1, 2, 3)
height <- c(180, 170, 160)
sex <- c("男性", "男性", "女性")

idベクトルにはIDという列名を、heightベクトルにはHEIGHTという列名をつけてデータフレームにしています。データフレームを作る時にはdata.frame()を使います。

df <- data.frame(ID = id, 
                 HEIGHT = height,
                 SEX = sex)
head(df)
##   ID HEIGHT  SEX
## 1  1    180 男性
## 2  2    170 男性
## 3  3    160 女性

データフレームから任意の列を抽出する際には、以下のように$を使います。

df$ID # ID列のベクトルを取得
## [1] 1 2 3

このデータフレームを分析していくことが実証分析の基本的な作業になります。実際に分析手法を学ぶ際に、このデータフレームの扱い方も学んでいきましょう。

1.5 データの型

1.5.1 数値

データには型というものが存在します。class()を使うと型がわかります。numericは数値です。計算する時にはデータの型は数値である必要があります。

a <- 5
class(a)
## [1] "numeric"

1.5.2 文字

数字の5でも、時には文字として扱いたい時もあるはずです。この場合は、""で囲ってあげます。この型をclass()でみてみると、characterと表示され、文字列として認識されていることがわかります。

a <- "5"
class(a)
## [1] "character"

文字列を数値として扱いたい時はas.numeric()、その逆はas.numeric()で出来ます。

a <- "5"
a <- as.numeric(a)
print(a)
## [1] 5
print(class(a))
## [1] "numeric"

1.5.3 論理演算子

最後に、論理演算子を紹介します。これは、TRUEFALSEの2値をとる型で、class()でみてみるとlogicalと表示されます。YES, NOで答えられるデータを扱う際に使うことが多いです。

answer <- c(TRUE, FALSE, TRUE)
class(answer)
## [1] "logical"

先ほど、計算するにはデータの型が数値である必要があるという話がありましたが、実は論理演算子も計算することが出来ます。例えば、合計を算出する関数であるsum()を使うと、以下のようにTRUEの数が集計されます。

sum(answer)
## [1] 2