統計解析のためのR基礎_1 (演算子，関数，変数，基本統計量の算出)

#対象

- Rで統計解析してみたいけど，プログラミングの経験もないし，基本構文も分からないという人
- とりあえずRとRStudioをインストールしたけど，何から始めていいかわからない人


#計算してみよう

Rstudioを開くとおそらくこのような画面になっているかと思います．左側のコンソール画面に実際にコードを書いてみましょう！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570280/34e78e3c-3637-a01e-4621-3840981e5453.png)

###演算子

まずは簡単な四則演算からいきましょう．
四則演算は，以下のように行います．
Enterキーで実行すると計算結果が返ってきます．

| 演算の種類 | 記号 | 例    |
|-----------|------|-------|
| 加算      | +    | 20 + 10 |
| 減算      | -    | 20 - 10 |
| 乗算      | *    | 20 * 10 | 
| 除算      | /    | 20 / 10 |

```R:Console
> 20 + 10
[1] 30
> 20 - 10
[1] 10
> 20 * 10
[1] 200
> 20 / 10
[1] 2
```

その他様々な演算処理が行えます．

| 演算の種類 | 記号 | 例    |
|-----------|------|-------|
| 加算      | +    | 20 + 10 |
| 減算      | -    | 20 - 10 |
| 乗算      | *    | 20 * 10 | 
| 除算      | /    | 20 / 10 |
| 商        | %/%  | 10 %/% 3|
| 剰余      | %%   | 10 %% 3 |
| 累乗      | ^    | 2 ^ 3   |

```R:Console
> 10 %/% 3
[1] 3
> 10 %% 3
[1] 1
> 2 ^ 3
[1] 8
```

3{ (2+3)<sup>2</sup> + 5 } のようなカッコつきの計算は以下のようにすべて()で行います．Excelと似てますね．

```R:Console
> 3 * ((2 + 3)^ 2 + 5)
[1] 90
```

###関数

平方根や対数を求めたいときには関数を使用します．

| 意味                 | 関数       |
|---------------------|------------|
| 平方根               | sqrt(x)    |
| 絶対値               | abs(x)     |
| 指数関数             | exp(x)     |
| 底が10の常用対数     | log10(x)   |
| 底が2の常用対数      | log2(x)    |
| 自然対数             | log(x)     |
| sin                 | sin(x)     |
| cos                 | cos(x)     |
| tan                 | tan(x)     |
| 整数部分             | trunc(x)   |
| 小数点下y桁で四捨五入 | round(x,y) |
| 小数点以下切り捨て    | floor(x)   |
| 小数点以下切り上げ    | ceiling(x) |

```R:Console
> sqrt(2) #平方根
[1] 1.414214
> abs(-10) #絶対値
[1] 10
> exp(2) #指数関数
[1] 7.389056
> log10(100) #底が10の常用対数
[1] 2
> log2(16) #底が2の常用対数
[1] 4
> log(10) #自然対数
[1] 2.302585
> trunc(3.14) #整数部分
[1] 3
> round(3.1415, 2) #小数点下y桁で四捨五入
[1] 3.14
> floor(3.14) #小数点以下切り捨て
[1] 3
> ceiling(3.14) #小数点以下切り上げ
[1] 4

```

ちなみに円周率πは"pi"と打つと使えます．

```R:Console
> pi #円周率
[1] 3.141593
```

#変数

変数とは，データを入れる箱のようなもの
変数に値を__代入__します．

![変数x.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570280/9bcfb156-f460-2f5b-e169-d61b5034116a.jpeg)
※イメージ図

Rでは，代入は基本的に"<-"で行います．
では，変数"x"に10を代入してみましょう．

```R:Console
x <- 10
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570280/acab5d83-663b-bac9-a3cc-7c32a9f0c6b9.png)

RStudioでは変数を定義すると，右上のEnvrionmentに表示されます．今回は，xという変数を定義し，10を代入したのでNameはx, Valueは10となっていますね．
コンソールに定義した変数"x"を入力し，実行すると，代入された値である10が表示されます．

※ちなみにRでは，#の後の文はコメントと解釈されるため，実行されません．コメントアウトと言い，コードの内容などをメモしておくために使います．コメントを残しておくと，あとから見返すときに分かりやすくなります．

```R:Console
> x <- 10 #xに10を代入
> x
[1] 10
```

変数は演算にも使用可能です．
xに5を加算してみましょう．

```R:Console
> x + 5 #xに5を加算
[1] 15
```

次はxの2乗を新たな変数"y"に代入しましょう．

```R:Console
> y <- x ^2 #xの2乗をyに代入
> y
[1] 100
```

同様に変数同士の計算も可能です．

```R:Console
> x <- 25
> y <- 4
> z <- x * y
> z
[1] 100
```

変数には文字列を代入することもできますが，文字列に対しては演算はできません．
文字列を扱うときには""ダブルクオーテーションで囲む必要があります．

```R:Console
> a <- "Hello"
> a
[1] "Hello"
> b <- "World"
> b
[1] "World"
> a+b
 a + b でエラー:  二項演算子の引数が数値ではありません 
```

このように文字列に対して演算を行うと，エラーメッセージが表示されます．
定義した変数が表示されているEnviromentをみるとTypeの列に文字列の場合は"character"，数値の場合は"numeric"と表示されているかと思います．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570280/98f8185c-fb6f-d27e-d52c-24e788ed752c.png)

#基本統計量の算出

###配列を作ってみよう

変数には，ベクトル，行列，配列なども代入することができます．
では，変数xに1から10までの整数のベクトルを代入してみましょう．
ベクトルの作成には"c"を使います．

```R:Console
> x <- c(1,2,3,4,5,6,7,8,9,10) #xに1から10までの整数のベクトルを代入
> x
 [1]  1  2  3  4  5  6  7  8  9 10
```


###基本統計量の算出

xに1から10の整数が代入できました．では，このxについて合計値，最大値，最小値，範囲，中央値，平均値，分散，標準偏差を算出してみましょう．

| 意味        |           |
|-------------|-----------|
| 合計値      | sum(x)    |
| 最大値      | max(x)    |
| 最小値      | min(x)    |
| 範囲        | range(x)  |
| 中央値      | median(x) |
| 平均値      | mean(x)   |
| 不偏分散    | var(x)     |
| 不偏標準偏差 | sd(x)     |

```R:Console
> sum(x) #合計値
[1] 55
> max(x) #最大値
[1] 10
> min(x) #最小値
[1] 1
> range(x) #範囲
[1]  1 10
> median(x) #中央値
[1] 5.5
> mean(x) #平均値
[1] 5.5
> var(x) #不偏分散
[1] 9.166667
> sd(x) #不偏標準偏差
[1] 3.02765
```

summary関数で最小値，第一四分位数，中央値，平均値，第三四分位数，最大値を一度に算出することも可能です．

```R:Console
> summary(x)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1.00    3.25    5.50    5.50    7.75   10.00 
```

※使用コード

https://github.com/tonegawa07/Qiita_R/blob/master/qiita_3.R