- パッケージのインストール
- パッケージの読み込み
- 非対話モードでGoogle Driveを認証する
- ドライブの確認
- ファイルのダウンロード
- データの読み込み
- Googleスプレッドシートの読み込み
- コードまとめ
事情により、Google ColabでRの教育を提供する可能性が生じました。Rを使うこと自体は、公式にランタイムがサポートされており、簡単です。
パッケージのインストールも、tidyverseなどの大きめなものでも高速に行われ、Notebookを開くたびに行っても、大きな問題はありません。
ただ、Colabの便利な機能であるGoogle Driveのマウントは、Pythonランタイムでのみ可能で、Rではマウントできません。

ファイルを公開状態で共有して、そのURLからダウンロードする、といったこともできますが、もう少し別の方法がないか調べてみました。
結果としては、googledriveパッケージとTowards Data Scienceの記事を参考に、Googleドライブにアクセスし、ファイルを取得できました。以下に手順を示します。すべて、Colab上での操作で、すでにRランタイムを使用するNotebookが開いている前提です。
■パッケージのインストール
tidyverse, googledrive, R.utilsの各パッケージをインストールします。
install.packages("tidyverse") install.packages("googledrive") install.packages("R.utils")
■パッケージの読み込み
tidyverse, googledriveパッケージを読み込みます。
library(tidyverse) library(googledrive)
■非対話モードでGoogle Driveを認証する
googledriveパッケージのdrive_auth() 関数は、標準で対話的に認証を行いますが、Colabではダイアログ等が開けないため、非対話的に認証する必要がありました。上記のTowards Data Scienceの記事に、そのまま解決策が書いてあったので、利用します。
suppressMessages(library("R.utils")) # 冗長なメッセージが表示されるので抑制 library("httr") my_check <- function() {return(TRUE)} reassignInPackage("is_interactive", pkgName = "httr", my_check) options(rlang_interactive=TRUE) drive_auth(use_oob = TRUE, cache = FALSE)
上記のコードを実行すると、Pythonランタイムと同じように、認証用のURLが表示され、アクセス許可が求められます。そして、そこでキーを取得して、セル内の入力ボックスに貼り付けます。





■ドライブの確認
Google Driveにアクセスできるか確認します。事前に、Colabからアクセスしたいフォルダーを作成しておいてください。実行結果は、Google Drive上のフォルダーおよびその中のファイルのメタデータ ("dribble" オブジェクトだそうです) として返ってきます。
drive_ls("YOUR FOLDER")

■ファイルのダウンロード
Drive上のファイルを、Colabにダウンロードします。データは、セッションストレージにダウンロードされるため、ランタイムが停止すると削除されます。
file <- drive_get("YOUR PATH") drive_download(file, overwrite = TRUE)

■データの読み込み
ダウンロードした後は、普通のファイルですので、read_csv() 関数等で読み込みます。
df <- read_csv("YOUR FILE NAME") head(df)

■Googleスプレッドシートの読み込み
Googleスプレッドシートについては、googlesheets4パッケージの read_sheet() 関数で、dribbleオブジェクトから直接データフレームとして読み込めます。
library(googlesheets4) df <- drive_get("YOUR FILE PATH") %>% read_sheet()

以上です。
■コードまとめ