JupyterLabにRを導入してデータ分析してみた
Pythonは機械学習ライブラリ、Rは統計解析のライブラリが充実していて、Pythonがそのうち覇権を握るだろうと言われたりしたこともあったものの、最近は棲み分けがうまくされるようになってきているということなので、Rもやっておこうと思った。
ただ、普通通りにRとRStudioを導入してそのあとJupyterLabでRを使えるようにしようとしたらいくつか躓いたので、紹介する。
Rの導入
公式ページからDLできます。
RStudioの導入
公式ページから
install.packages('tidyverse')
でtidyverseを使おうと思ったら、
There is a binary version available but the source version is later: binary source needs_compilation processx 3.4.1 3.4.2 TRUE
Do you want to install from sources the package which needs compilation?
と言われる。Yesでreturnする。ダウンロードが始まり、最後に以下のようなエラーメッセージが出る
警告メッセージ: original(pkgs, lib, repos, ...) で: installation of package ‘processx’ had non-zero exit status
ここからXQuartzっていうのをダウンロードして、インストールすればOK
RをJupyterLabで使えるようにする方法
ターミナルで「R」と叩いてreturnし、コンソールが表示されたら、
install.packages("devtools")
を入力。すると
--- このセッションで使うために、CRAN のミラーサイトを選んでください ---
Secure CRAN mirrors
と表示されるので、Japanの番号を入力してreturn。
そのあと、以下のコードを入力、return
devtools::install_github('IRkernel/IRkernel', force = T)
IRkernel::installspec()
すると、JupyterLabでRがつかえるようになりました。
Rでデータ分析する
library(tidyverse)
all_data <- read_csv("CSV_file.csv")
tidyverseというライブラリを指定して、URLからcsvファイルを読み込む。
summary(email_data)
で概要を確認して、
part_df <- all_data %>%
filter(segment != "Womens") %>%
mutate(treatment = if_else(segment ==
"Mens",1,0 ))
このコマンドでsegment列が"Womens"のデータを除き、treatment列を追加してsegmentが"Mens"だったら1、そうじゃなければ0を値として取るようにする。
Pythonだったらこうなる
part_df = all_data[email_data['segment'] != "Womens E-Mail"]
part_df['treatment'] = part_df['segment'].apply(lambda s: 1 if s == 'Mens' else 0)
自分はPythonに慣れているので、Pythonの書き方のほうがわかりやすいですが、描画などはライブラリをインポートすることなくできるので、Rも慣れれば強い味方になってくれそうな予感がします