グラフ・分析

【超入門dplyr】Rのパッケージであるdplyrの最低限知っておくべき使い方

dplyr

パッケージを使うのすら初心者なんだけど

dplyrってどうやって使うんだっけ?

という方にdplyrの使い方をお伝えするよ。

Rにもともと入っているデータを使うので、データをダウンロードする必要もないですわ。

RStudioとこの記事を、交互に見るのが大変だよぉぉ

という方に向けて、次のコードを用意したよ。

  1. 関数ごとに分けたもの(実行しなくても理解できる)
  2. 具体的な説明とコードを書いたもの(実行するのがおすすめ)

dplyr関数ごとに分けたもの

dplyrのインストールと読み込み

パッケージ読み込み

install.packages(“dplyr”)
library(dplyr)

他のインストール方法もあるわ。

データを見てみる

今回はRにもともと入っているデータを使うので、ダウンロードする必要はありません。

ToothGrowthデータを表示

head(ToothGrowth)

dplyr

len、supp、doseが列名です。

「ToothGrowth」というのは、ギニアピッグの歯の成長に対するビタミンCの効果を表しているよ。

意味わかんなくても大丈夫。あくまでdplyrの使い方。

もしデータの概要が気になるという方がいたら、このコードで見れるよ。

ヘルプ

?ToothGrowth

filterを使ってみる

列名の一部を指定して取り出す

ToothGrowthデータの中でsuppがVCであるもののデータを表示してみる。

suppがVCであるときのデータを表示してみるわ。イコールは二個だよ。

supp ==VC

ToothGrowth %>% filter(supp == “VC”) %>% head()

filterでデータの取得する部分を指定しているね。

dplyr

条件付きでfilterを使う

列名だけでなく、5以上とか20以上とか数値を指定することができます。

lenが30より上,suppがOJのものを取り出す。

len >30 supp==OJ

ToothGrowth %>% filter(len > 30, supp == “OJ”)

dplyr

lenが20より上,doseが1のものを取り出す。

len > 20, dose == 1

ToothGrowth %>% filter(len > 20, dose == 1)

dplyr

数値のときは””はいらない。文字列のときは””は必要。

selectを使う

selectで必要な列を取り出す

列名がlenのものを取り出すよ。

lenだけを取り出す

ToothGrowth %>% select(len) %>% head()

dplyr

selectで列名を変える

列名を変えることもできるわ。列名lenをlengthにしてみます。

lenをlength

ToothGrowth %>% select(length = len) %>% head()

dplyr

mutateを使う

mutateで列を追加する

doseに10をかけたdose2という列名を追加していくわ。10をかけた理由とかないけどね。

dose2をデータに追加

ToothGrowth %>% mutate(dose2 = dose * 10) %>% head()

dplyr

dplyrの具体的な説明とコードを書いたもの

こっちは、この記事とRStudioなどを交互に見る必要ないバージョンです。Rstudioなどのファイルにコピペして使ってください。

▼RStudioでファイルを作る

①File
②New file
③R Script

dplyrの使い方

dplyr入門
パイプ処理偏
#dplyrは、データフレームを効率的に処理できるもの
#パッケージのインストールと読み込み
install.packages(“dplyr”)
library(dplyr)

##Rにもともと入っているデータ(ToothGrowth)を使う
#head()でデータの上から5行を表す
head(ToothGrowth)

##ToothGrowthはギニアピッグの歯の成長に対するビタミンCの効果
#説明を深く知りたいときは「?データ名」で説明が見れる ?ToothGrowth

##データには歯の長さ(len)、ビタミンCの種類(supp)VCかOJか、ビタミンCの量(dose) #Formatってところにあるよ

###filter
##ToothGrowthデータの中でsuppがVCであるもののデータを表示
#suppがOJであるときのデータを表示してみる
ToothGrowth %>% filter(supp == “VC”) %>% head()

ToothGrowthデータの中でsuppがOJであるもののデータを表示
#suppがOJであるときのデータを表示してみる
ToothGrowth %>% filter(supp == “OJ”) %>% head()
#filterでデータの取得する部分を表しているような感じ

##条件付きfilterを利用する
#lenが30より上,suppがVC
ToothGrowth %>% filter(len > 30, supp == “OJ”)
#lenが20より上,doseが1
ToothGrowth %>% filter(len > 20, dose == 1)

###select
##selectで必要な列を取り出す
#lenだけを取りだす
ToothGrowth %>% select(len) %>% head()

##selectで列名を変えることもできる
#列名lenをlengthにする
ToothGrowth %>% select(length = len) %>% head()

##mutate
#列を追加することが出来る(*はかけると同じ)
ToothGrowth %>% mutate(dose2 = dose * 10) %>% head()

###番外編
##magrittrパッケージを使えば、列名を上書きできる
install.packages(magrittr) library(magrittr)

#列を上書きすることができる
#上書きすることのできる%<>%を使う
ToothGrowth %<>% mutate(dose = dose * 10) %>% head() ToothGrowth

 

まとめ:dplyrを簡単に使えましたか?

まとめ

  • データがないときはRに付属してあるデータを使う
  • 説明した関数は↓
  • filter
  • select
  • mutate

ゼロから始めるR言語に戻る

あわせて読みたい
R言語
【随時更新】ゼロから始めるR言語【2018/3/30日更新】RとRStudioのインストールからグラフ・図・分析、テキストマイニング、スクレイピングなどをやっていきます。ネットでRを勉強したい人は是非ご覧ください。...

以上さぎのみや(@gumimomoko)でした。今日もあなたの毒を抜きました。少しは体が軽くなりましたか?

Rに関する本

¥2,808
(2018/08/20 20:06:21時点 Amazon調べ-詳細)

¥2,808
(2018/08/19 21:16:17時点 Amazon調べ-詳細)

ABOUT ME
さぎのみや
さぎのみや
Unity専門メディアである【ユニシャー】→「https://unity-code.com」を運営している人です。大森靖子さんが大好きなので《超書手》と名乗っています。 →Polcaで応援Amazonほしいものリスト
ゲーム開発を手助けるメディア「Unishar-ユニシャー」
  • Unityを勉強したい
  • とりあえずUnityを使ってゲームを作りたい

このような悩みを解決してくれる、アクセス急上昇中のUnityメディア「Unishar-ユニシャー」

Unityでのゲーム開発に役立つことばかりです。

Unity専門メディア「Unishar-ユニシャー」→