🎃
【実務で役立つ】Rから直接Googleスプレッドシートに書き出す方法
まずは準備
最初にgooglesheets4
パッケージをインストールします。(本日の主役です)
install.packages("googlesheets4")
library(googlesheets4)
自分のGoogleアカウントと連携させるために、次のスクリプトを記述します。
# GoogleスプレッドシートとRの接続
gs4_deauth()
gs4_auth(email = "ここにメールアドレス")
# 「ダミー」という名前のシートを作成
ss <- gs4_create("ダミー", sheets = c("alpha", "beta"))
これで認証画面が出てくるので、許可をするとRから直接スプシに書き出すことができるようになります。
ちなみに上記のgs4_create
ではsheets =
で作成するシートの名前を任意でつけることができます。上記では「ダミー」というスプシの中に「alpha」「beta」というシートが追加されます。
既存のスプシを使用する
元から存在するシートを使いたい場合は以下のようにします。
# 既にあるスプシを読み込む
spreadsheet_url <- "スプシのURL"
ss <- gs4_get(spreadsheet_url)
また、ss
で読み込んだスプシの内容を確認したい際には以下のスクリプトを実行するとss
で読み込んだスプシが開きます。
# ssで読み込んだスプシを開く
gs4_browse(ss)
実際に書き出してみる
まずは適当にデータを作ります。
# データを作る
dat <- tibble::tibble(string = "string", logical = TRUE, data.time = Sys.time())
そして実際に書き出します。
range_write(ss, data = dat, sheet = "beta", col_names = FALSE)
これでbeta
というシートにdat
が書き出されます。
col_names
でTRUE
を指定すると列名も出力され、FALSE
を指定すると列名を除いたものが出力されます。
セルを指定して書き出し
中にはセルを指定して書き出したい時もあると思います。
そんな時は、以下のようにセル名を指定します。
range_write(ss, data = dat, range = "beta!C5", col_names = FALSE)
これでbeta
のc5
セルをはじめとして書き出されます。
おまけ
特定のセルの数値を読み込む方法
特定のセルの数値を引っ張ってくる方法を紹介しておきます。
# 特定のセルの値を読み込む
cell_value <- read_sheet(sheet_url, range = "beta!B2")
こうすることで、beta
シートのB2
の値を抽出することができます。
スプシを削除する方法
これを実行することで、demo
というスプシは削除されます(ゴミ箱に入ります)。
gs4_find("demo") %>%
googledrive::drive_trash()
最後に
いかがだったでしょうか。
Rから直接スプシに書き出すことができると仕事の幅もかなり広がると思います。
Discussion