自身のPC上に毎回Rを実行できる環境を作るのは、時に大変な作業です。少しだけ使ってみたい場合やコードと実行結果を簡単に共有したい場合もあります。今回はそんなときに便利な、オンラインでコードを実行できる
どちらもコードと実行結果がまとめて表示できるノートブック形式で、かつオンライン上でコードを実行できるサービスです。この2つを使うと主に以下のようなメリットがあります。
- 環境構築が不要
- 実行結果とともにコードを共有できる
- GPUを使用できる
Jupyter Notebook[1]など、ノートブックと聞くとPythonが思い浮かぶと思います。しかし、今回紹介するGoogle ColaboratoryやKaggle Notebookでは、R言語も使用することができます。今回はさらなる業務効率化につながるよう、Rでノートブックを活用する方法について紹介していきます。
Google Colaboratory/Kaggle Notebookとは
この記事では2つのオンラインでノートブック環境を提供するサービスを紹介します。
Google Colaboratory
Google ColabratoryはGoogleが提供するブラウザ上でPythonコードを実行できるサービスです。公式サポートされているのはPythonですが、後述する方法によってRを使用できます。
Kaggle Notebook
Kaggleは数多くのデータ分析コンペティションが開催されているプラットフォームです。Jupyter Notebook環境を提供しており、使用時間の制限はありますがGPUも扱えます。Google Colabratoryと異なり、Rを正式にサポートしています。
Rを使用するには
ここから、それぞれの環境でRを使用する方法を説明していきます。
Google Colaboratory
Google Colabratoryで公式にサポートしているのはPythonですが、以下のURLにアクセスするとR言語が使用できる環境でノートブックが作成されます。
https://
ナビゲーションバーの
library()
関数で確認すると、tidyverseパッケージやGoogleサービスに関連する基本的なパッケージがすでにインストールされていることが確認できます。また、Pythonの実行環境でもIPython magic integration[2]を使用することにより、Rで記述し実行することができます。
# Rを実行できるようにPythonモジュールをロードする
%load_ext rpy2.ipython
Pythonモジュールのロードが完了したら、以下のように初めに%%R
を記述することで、Rのコードを実行できるようになります。
Kaggle Notebook
通常はサインインしてからノートブックを作成しますが、ログアウト状態でも15分間はセッションが続くので、試しに使ってみたい方はKaggle Codeの画面からノートブックを作成してみてください。
ノートブックを作成したら、右カラムのSettingsからR言語を選択します。Google Colabratoryに対してKaggle NotebookはRを正式にサポートしており、デフォルトでインストールされているパッケージも豊富です。
既存のGitHubリポジトリへ保存する
Kaggleは作成したノートブックを簡単にGitHubへ保存できます。現在の分析結果がバージョン管理できると、後々の振り返りや他人との共同作業時にとても便利です。以下の手順でGitHubにノートブックを保存してみましょう。
- ナビゲーションバーの
「File」→ 「Link to GitHub」 でノートブックとGitHubを連携させる - 左上の
「Save Version」 ボタンからcommitコメントの記載、リポジトリやブランチの選択を行う
データの手動アップロードと読み込み
分析をするにはデータが必要不可欠です。分析対象となるデータのアップロードや、アップロード後にRから読み込む方法を確認していきます。Google ColaboratoryとKaggleのいずれも、用意しているCSVファイルなどがあればアップロードして使用できます。
Google Colaboratory
ファイルのアップロード
左のファイルアイコンを選択し、アップロードアイコンを押下またはドラッグアンドドロップでファイルをアップロードします。
アップロードしたファイルの読み込み
元から存在するsample_
と指定するとファイルを読み込むことができます。
read_csv("sample_iris.csv")
Kaggle Notebook
ファイルのアップロード
右カラムの
また、Kaggle Notebookは別のKaggle Notebookの結果を参照することもできます。以下の手順で必要なデータを追加してみましょう。
- 右カラムの
「+Add data」 ボタンを押す2. 「Notebook Output Files」 タブを選択する - 使用したいノートブックの
「Add」 ボタンを押してデータを追加する
アップロードしたファイルの読み込み
「+Add data」→sample_
ファイルをアップロードしたとします。その場合、read_../
と指定するとファイルを読み込むことができます。
read_csv("../input/sample/sample_iris.csv")
ノートブックからGoogle Dirveを使用する
ブラウザ上でdrive_
関数を実行するため、use_
引数にTRUE
を与えて実行します。しかし現状以下のようにエラーが出てしまいます。
このエラーに対する対応策として、httr::
関数を上書きし、rlang_
オプションをTRUE
にする必要があります[3]。
install.packages("R.utils")
library(httr)
suppressMessages(library("R.utils"))
my_check <- function() { return(TRUE) }
reassignInPackage("is_interactive", pkgName = "httr", my_check)
options(rlang_interactive=TRUE)
それでは再度drive_
関数を実行してみましょう。
library(googledrive)
drive_auth(use_oob = TRUE, cache = FALSE)
Please point your browser to the following url: ... ① Enter authorization code: ... ②
まずは①のURLにアクセスします。ファイルの表示、編集、作成、削除などの必要な権限にチェックを入れて続行すると認証コードが発行されるため、そのコードを②のテキストボックスに貼り付けます。
ここで試しにdrive_
関数を実行してみましょう。エラーが出ることなくドライブ内の一覧が表示されます。
drive_find(n_max = 5)
ノートブックからBig Queryに接続する
BigQueryの接続時もGoogleドライブと同様のエラーが出るため、関数の上書きとオプションの変更を行います。
library(httr)
suppressMessages(library("R.utils"))
my_check <- function() { return(TRUE) }
reassignInPackage("is_interactive", pkgName = "httr", my_check)
options(rlang_interactive=TRUE)
そのうえでbq_
関数で認証を行いましょう。こちらもブラウザ上での実行なのでuse_
引数をTRUE
にします。
library(bigrquery)
bq_auth(use_oob = TRUE, cache = FALSE)
Googleドライブの認証時と同様、URLとテキストボックスが表示されるので、URLにアクセスし必要な権限を選択した後表示された認証コードをテキストボックスに入力します。
認証が終わったら試しにGoogleが用意しているサンプルデータセットにアクセスしてみましょう。dbConnect
関数でpublicdataプロジェクトのsamplesデータセットへ接続し、dbListTables
関数でテーブルの一覧を表示します。
con <- dbConnect(
bigquery(),
project = "publicdata",
dataset = "samples",
billing = "プロジェクトID"
)
dbListTables(con)
'github_nested''github_timeline''gsod''natality''shakespeare''trigrams''wikipedia'
さいごに
簡単にではありますが、RでGoogle ColabratoryやKaggle Notebookを使う方法について説明をしてきました。自分のPCにRやRStudioをインストールすることなくRでプログラムを書くことができ、また相手のPCに環境が整ってなくてもコードと実行結果を簡単に共有することができます。
今回は接続周りの説明にとどめましたが、通称