R tips データ整理に使えるライブラリdplyr

# <font color="DarkSlateBlue">記事の目的</font>
データを整理する際にとても使えるライブラリである<font color="blue">「dplyr」</font>についていくつか解説します！
ここに乗せているソースコードは、コピペで全部再現できます。

# <font color="DarkSlateBlue">目次</font>

<table>
<tr><td>No.<td>目次<td>説明
<tr><td>1<td><a href="#1-ライブラリと使用するデータ">ライブラリと使用するデータ</a><td>dplyr / iris
<tr><td>2<td><a href="#2-sample_n-データからランダムにいくつか抽出">sample_n</a><td>データからランダムにいくつか抽出
<tr><td>3<td><a href="#3-select-条件に合う列抽出">select</a><td>条件に合う"列"抽出
<tr><td>4<td><a href="#4-filter-条件に合う行抽出">filter</a><td>条件に合う"行"抽出
<tr><td>5<td><a href="#5-group_bysummarise-グループごとに統計量などを抽出">group_by+summarise</a><td>グループごとに統計量などを抽出
<tr><td>6<td><a href="#6-mutate-データをいじって新しい列を追加">mutate</a><td>データをいじって新しい列を追加
<tr><td>7<td><a href="#7-arrange-並び替え">arrange</a><td>並び替え( 昇順 , 降順 )
<tr><td>8<td><a href="#8-rename-カラムの名前変更">rename</a><td>カラムの名前変更
</table>

# <font color="LimeGreen">1.</font> <font color="DarkSlateBlue">ライブラリと使用するデータ</font>
libraryはもちろんdplyrです！
データはirisのデータセットを使用します。

```R:
library(dplyr)
iris %>% head()
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/2e58837c-c221-514c-5e01-4f2d146ba5fd.png)


# <font color="LimeGreen">2.</font> <font color="DarkSlateBlue">sample_n (データからランダムにいくつか抽出)</font>
```R:
iris %>% sample_n(5)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/5ce25a72-6130-bf14-1e68-da07d2a6622e.png)


# <font color="LimeGreen">3.</font> <font color="DarkSlateBlue">select (条件に合う"列"抽出)</font>
```R:
iris %>% select(Sepal.Length) %>% sample_n(5)
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/648924eb-ee10-9f0a-c043-9a93d0552329.png)


# <font color="LimeGreen">4.</font> <font color="DarkSlateBlue">filter (条件に合う"行"抽出)</font>
```R:
#種類を確認 (uniqueはdplyr関係ないです。)
iris$Species %>% unique()
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/966900e7-2cf9-fff7-f181-39538d9d303a.png)

```R:
#種類で指定
iris %>% filter(Species=="versicolor") %>% sample_n(5)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/cfdcfc85-e766-7d61-2a2c-1d75e9db8e81.png)

```R:
#数値で指定
iris %>% filter(Sepal.Length>6.5) %>% sample_n(5)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/64a196df-82a4-4b5b-395f-6027d263ae57.png)


# <font color="LimeGreen">5.</font> <font color="DarkSlateBlue">group_by+summarise (グループごとに統計量などを抽出)</font>
```R:
iris %>% group_by(Species) %>%
  summarise(Sepal縦の長さの平均=mean(Sepal.Length),
            Sepal横の長さの合計=sum(Sepal.Width))
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/2dde9ae9-6ebe-aa6a-8fa4-231721e11996.png)

# <font color="LimeGreen">6.</font> <font color="DarkSlateBlue">mutate (データをいじって新しい列を追加)</font>
```R:
#足し算の列を追加
iris %>% mutate(Sepal縦と横の合計=Sepal.Length+Sepal.Width) %>% 
  sample_n(5)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/95f33063-7f65-ef57-5c43-a83763e519ed.png)

```R:
#クラスを数字に変換
#ifelse(条件,条件がTRUEのときの値,条件がFALSEのときの値)
iris %>% mutate(class=ifelse(Species=="setosa",1,
                             ifelse(Species=="versicolor",2,3))) %>%
  sample_n(5)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/6d5a26c1-8f94-3d73-7a6a-19b77e3734b1.png)

# <font color="LimeGreen">7.</font> <font color="DarkSlateBlue">arrange (並び替え)</font>
```R:
#昇順
iris %>% arrange(Sepal.Length) %>% head(5)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/b14ee410-093d-5e63-5558-8b96cdaa9d7c.png)

```R:
#降順
iris %>% arrange(desc(Sepal.Length)) %>% head(5)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/25506299-5942-4ece-0654-89039e87e35d.png)

# <font color="LimeGreen">8.</font> <font color="DarkSlateBlue">rename (カラムの名前変更)</font>
```R:
iris %>% rename(種類=Species) %>% sample_n(5)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/d3bee28a-b7e3-1d7d-9791-1fdd11ddac0f.png)