[本記事の内容は最新版のGoogle drive api v3 (2019年11月時点)には対応していません。]
Rにgoogledriveというパッケージがあります。
これを使えば、ローカル(分析環境上)に保存してなくgoogle drive上のみにあるデータを一時的にダウンロードしてRで分析し、最終的にgoogle driveにアップロードすることが可能です。まあなにがいいかというとローカル(分析環境上)にインプット/アウトプットデータを保持しなくていいということですね。
Google driveのアクセス権を取得
Rを起動している環境からweb browserが使用可能な場合
library(googledrive)
## まずはgoogledrive上のデータリストを取得してみる
drive_find(n_max = 50)
## この際にアクセス権の取得プロセスが起動する
Use a local file ('.httr-oauth'), to cache OAuth access credentials between R sessions?
1: Yes
2: No
Selection: 1
あとはweb browserが起動し、そのまま進めていけばOK
Rを起動している環境からweb browserが使用できない場合(クラウドマシーンやサーバーなど)
options(httr_oob_default=TRUE) ##このオプションが必要
Please point your browser to the following url:
https://accounts.google.com/o/oauth2/auth?client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
## 上記のようにurlが与えられるので、ローカルのweb browserからアクセスし、コードを取得
Enter authorization code: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Google drive上のデータをダウンロードする
# データ名のリストを取得
drive_find( n_max=50)
# まずはマニュアルどおり(ここはマニュアルそのまんま)
## 名前で検索
drive_find(pattern = "chicken") ##なんでchickenなんだろ
## ファイル属性で検索
drive_find(type = "spreadsheet") ## Google Sheets!
drive_find(type = "csv") ## MIME type = "text/csv"
drive_find(type = "application/pdf") ## MIME type = "application/pdf"
# データをダウンロードする
## 例としてAAAAA.tifというgoogle driveにあるtifファイルをダウンロードしてみる
## Google drive上からほしいデータを検索&特定する
inputname <- drive_find(pattern = "AAAAA.tif")
drive_download(file = inputname, type = "tif", path = here(inputname), overwrite = TRUE) #この例ではhereパッケージ(カレントディレクトリの管理に便利)を利用している.pathはDLする場所を指定
これでhere(inputname)にinputnameのデータがDLされる
データをアップロードする
## outnameはローカルデータ
drive_upload(media = outname, name = outname)