[R] プログラム開発言語Rのインストール(Windows版)  - これからRをデータ解析に使ってみようという方に

　Rは統計解析に強みを持つプログラミング言語です。
これから初めてRを使ってデータ解析してみようという方に、最新バージョン(3.6.1)のRのインストール手順とデータを読み込んで基本統計量を計算するところまでを解説します。
エクセルをデータ処理と解析に使っていられる方も多いでしょうが、エクセルに加えてRを使うと以下のメリットがあります。

- データ量(行数、列数)が大きくなってもデータの扱いが楽です。
- 実行したデータ処理がスクリプトとして保存でき、共有化、再現性に優れています。
- 複数のファイルを一括してデータ処理・解析ができます。
- 使えるデータ処理・解析用の関数が豊富で、処理速度もエクセルより早いです。
- プロットを作成する関数も豊富です。
- 実験データなどの処理や解析でRによるプログラミングを覚えれば、今広くデータサイエンスに人気のプログラミング言語Pythonを覚えるのも楽です。もちろん逆でも良いのですが。

エクセルとうまく使い分けるとよいでしょう。
私は、データファイルとしてCSVファイルを使いエクセルはビューアとして使いますが、データ処理や解析にはエクセルは使わなくなりました。

# 環境
　Windows10

# Rのインストール
下記リンクをクリックしてください。
[The Comprehensive R Archive Network]([title](http://...))
またはこちらから　https://cran.r-project.org/

**注）2020年の5月になって、RのバージョンがR3.6からR4.0に代わりました。**
**対応が追い付いていないPackageも多く、私は10月頃から使用するバージョンを変更しています。**
**旧バージョンのR3.6.3をインストールされる場合は、こちらのサイトからインストールしてください。**
[R3.6.3](https://cran.r-project.org/bin/windows/base/old/3.6.3/) 


赤矢印の "Download R for Windows"をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/d900e7cb-ad7b-805a-5475-ac5231e9a311.png)

"base"をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/b32bd42e-7682-84b8-11c7-981b6895bb20.png)

"Download R 3.6.1 for Windows"をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/3d1f6965-a2e7-922e-a3cf-a374102d7493.png)

**Google Chrome**では、ダウンロード後ウインドウ左下の"R-3.6.1-win(1).exe" の"^"をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/c0164820-8a6e-3085-c379-a2179f3469a8.png)

"開く(O)"をクリックして、インストールスタート
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/efa88d9e-9854-e90a-4530-ce9b8078cc6a.png)

**Microsoft.Edge**では、"実行"をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/68ad50a2-88fd-ce86-4c04-2f1b88b24532.png)

デバイスへの変更を聞いてきますが、"はい"をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/f2d25a4b-27d0-f7c6-0bda-2823e886e9f6.png)

言語の選択は"OK"をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/9f2c664f-9008-ba24-08cb-44422366621d.png)

"次へ(N)"をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/ac94b837-a7d6-80f1-640e-2b7d363902bf.png)

インストール先を聞いてきますが、"次へ(N)"をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/eab167a3-c6de-1a37-c407-97cf6f8f64ad.png)

PCによって32-bitを選ぶ場合はチェックしてください。"次へ(N)"をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/00f5c5fd-ea07-79b7-c364-ffe43f801d0d.png)

起動時のオプションを聞いてきますが、"次へ(N)"をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/c04e3668-48d8-2ac6-e985-7c8d4581d0ab.png)

追加タスク聞いてきますが、"次へ(N)"をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/911a7210-b0e3-810a-2408-5a5f4bf15e0c.png)

インストール状況が表示されます。１，２分待ちましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/54a06295-9024-d3dc-6092-d1019f12bd3b.png)

インストールが完了しました。"完了(F)"をクリックして終了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/7fe4199f-b358-264c-1951-b65f2f8a5452.png)

# Rでデータ処理してみましょう
## Rを起動する
　デスクトップに作成されているRのショートカットから起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/81778f51-c44e-9d29-f74c-a10017d695ca.png)

 Rが起動して、R Console ウインドウが開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/03d7eea2-3d82-fc3d-e560-82c54db9317f.png)

読み取るファイルや書きだすファイル、プログラムのスクリプトを置くためのフォルダを作業ディレクトリーと言います。作業ディレクトリを変更します。メニューの“ファイル”→“ディレクトリの変更“。



プログラムの手順スクリプトを記述するためのウインドウを開きます。
左上のメニューから"新しいスクリプト"をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/110dc7e6-1ca6-b190-12a7-2cab11df7b6e.png)

新たにRエディタウインドウが開きます。ウインドウを整列させるために、メニューのウインドウから"縦に並べて表示"をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/99716af0-ec0d-9d14-caf9-43fe54c2bf64.png)

ウインドウが整列されました。Rエディタにスクリプトを記入します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/b77607a6-78b5-5ef1-268a-69829be1a1d8.png)

##Rエディタに記入したスクリプトの実行
実行するスクリプトの行にカーソルを置くか、
実行する複数行を選択して、右クリックして、
"カーソル行"または選択中のRコードを実行"をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/e816baa5-67a5-435a-5b75-b5b884193203.png)

##Rエディタに記入したスクリプトの保存
メニューの"ファイル"　→　"別名で保存"　で保存してください。

# データセットirisでデータ処理
データセットirisはRやPythonなどで機械学習のトレーニングで扱われる最も有名なデータかもしれません。
3種類の花、各50サンプルずつで計150サンプル、がく片と花びらの幅と長さに関する4つの特徴量からなるデータです。

このirisを使って、下記のスクリプトを作成して、実行します。
1.irisのデータ内容を確認する
2.irisのデータをcsvファイルに保存
3.保存したcsvファイルからデータを読み込んで、各列の平均値の計算結果を保存する。

### irisのデータを確認する
データセットirisをオブジェクトdfに代入します。
オブジェクト名は英数字を使って内容が分かり易く作成します。頭に数字を使うのは禁止です。
str(オブジェクト)でデータの概要を表示します。

```r:iris
df <- iris  #データセットirisをオブジェクトdfに代入
str(df)     #dfのデータの概要を表示
```

出力結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/1161bf53-3ac8-0a4b-d8fa-9c3cadcceaff.png)


各行の説明は
'data.frame' : データ構造はデータフレーム（表形式です）
150 obs. of 5 variables   150サンプル、5変数
$ Sepal.Length: num 5.1  :   各変数名、データの型と値

最初の6行を表示するにはhead()を使います。

```r:head
head(df)     #dfのデータの最初の6行を表示
```
出力結果　最初の6行のデータが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/b9803dee-da15-3b11-a56e-04ae9eede3ff.png)

次のスクリプトで表示する行、列を指定できます。
df[スタート行:エンド行, スタート列:エンド列]
省略すると、すべての行、またはすべての列の指定になります

```r:df[,]
df[1:6, ]     #dfのデータの最初の6行、すべての列を表示
```

### irisのデータをcsvファイルに保存する
write.csv(オブジェクト, "ファイル名.csv")で保存します。

```r:write.csv
write.csv(df, "iris.csv")    
```

### 保存したcsvファイルを読み取る
read.csv("ファイル名.csv", header = TRUE, row.names = 1)を使います。　header = TRUE でcsvファイルの1行目を列名colnames(変数名)の行に、row.names = 1で1列目を行名rownames(サンプル名)の列に指定します。
df2 <- read.csv() で読み込んだデータをdf2に代入します。
表示するにはhead(df2)を使います。

```r:read.csv
df2 <- read.csv("iris.csv", header = TRUE, row.names = 1) 
head(df2)   
```

### 関数apply()を使って各列の平均値を計算する
データフレームの集計にとても便利な関数です。
apply(オブジェクト[, 列の指定],  Margin,  関数) 
1列目から4列目を指定、Marginを2で列方向(1で行方向)の計算を指定、関数はmean(平均値の計算)を指定。
計算結果をmean.df2に代入します。
スクリプト全体を( )で囲むことで計算結果をオートに表示。

```r:apply_mean
(mean.df2 <- apply(df2[ , 1:4], 2, mean))  
```
出力結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481830/4097b8b0-bd11-43bb-bf5d-70b45a1744d9.png)


同様に、sd(標準偏差)なども計算できます。

### 計算結果をcsvファイルに保存する

```r:write.csv_mean.df2
write.csv(df2.csv, "means of iris.csv")    
```



Rを使って、データの入出力、平均値の計算を行いました。
次の報告では、Rを使ってirisのデータでクラスター分析は参照のリンク先が分かり易いのでご覧ください。

参照リンク(良く参照します)
[R-tips](http://cse.naro.affrc.go.jp/takezawa/r-tips/r.html)
[R言語でクラスタリングしてみた](https://qiita.com/Haruka-Ogawa/items/fcda36cc9060ba851225)

以上