Googleスプレッドシートの新規作成、削除、シート名の変更や移動の操作が簡単なパッケージの紹介です。また、スプレッドシートが共有されていればスプレッドシートIDやURLで内容を取得することも可能です。
パッケージバージョンは1.1.1。実行コマンドはwindows 11のR version 4.4.1で確認しています。
パッケージのインストール
下記、コマンドを実行してください。
# パッケージのインストール
install.packages("googlesheets4")
実行コマンド
詳細はコメント、パッケージのヘルプを確認してください。
# パッケージの読み込み
library("googlesheets4")
### データ例の作成#####
# tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
install.packages("tidyverse");require("tidyverse")
}
set.seed(1234)
n <- 30
TestData <- tibble(Group = sample(paste0("Group_",
formatC(1:4, width = 2, flag = "0")),
n, replace = TRUE),
A_Data = sample(c(1:50), n, replace = TRUE),
B_Data = sample(c(51:100), n, replace = TRUE),
C_Data = sample(c(51:100), n, replace = TRUE)) %>%
rowid_to_column("ID")
########
# Googleアカウントに接続:gs4_authコマンド
# 既に接続済みであればアカウント選択のメッセージが表示されます
# 実行コマンド例は初回接続時の表示です
gs4_auth()
# Is it OK to cache OAuth access credentials in the folder
# C:/Users/chalu/AppData/Local/gargle/gargle/Cache between R sessions?
# 1: Yes
# 2: No
# Selection: 1
# Waiting for authentication in browser...
# Press Esc/Ctrl + C to abort
# Authentication complete.
#Googleアカウントの連携解除:gs4_deauthコマンド
gs4_deauth()
### 以下のコマンドは実行でGoogle driveのスプレッドシートが更新されます #####
# 新規Googleスプレッドシートを作成:gs4_createコマンド
# 作成したオブジェクトは各コマンドのssオプションに値として使用します
# スプレッドシート名:nameオプション
# シート名:sheetsオプション;listでシート名とデータを書き込めます
TestSheet <- gs4_create(name = "からだにいいもの",
sheets = list("からだ" = TestData,
"Good" = head(TestData)))
# TestSheetの内容を確認
# TestSheet
# ── <googlesheets4_spreadsheet> ────────────────────────────────────────────────────────────────────
# Spreadsheet name: からだにいいもの
# ID: 1rUW-cf4j3yXoJvErMmpS2kZDkfN6Hk7NUVCIWM124oY
# Locale: ja_JP
# Time zone: Asia/Tokyo
# # of sheets: 2
#
# ── <sheets> ───────────────────────────────────────────────────────────────────────────────────────
# (Sheet name): (Nominal extent in rows x columns)
# からだ: 31 x 5
# Good: 7 x 5
# スプレッドシートにシートを追加:sheet_addコマンド
# 追加位置:.after/.beforeオプション;数値/シート名で指定が可能
TestSheet %>%
sheet_add(sheet = "いいもの", .after = "からだ")
# 同じ
# sheet_add(ss = TestSheet, shrrt = "いいもの", .after = "からだ")
# スプレッドシートのシートをコピー:sheet_copyコマンド
# コピー対象のシート:from_sheetオプション
# コピー後のシート名:to_sheetオプション
TestSheet %>%
sheet_copy(from_sheet = "Good", to_sheet = "Good_2",
.after = "からだ") %>%
sheet_copy(from_sheet = "Good", to_sheet = "Good_3",
.after = "からだ")
# 同じ
# sheet_copy(ss = TestSheet, from_sheet = "Good",
# to_sheet = "Good_2", .after = "からだ")
# シートの削除:sheet_deleteコマンド
# list形式で複数指定が可能
TestSheet %>%
sheet_delete(sheet = "Good_3")
# 同じ
# sheet_delete(ss = TestSheet, sheet = "Good_3")
# シートの位置を移動:sheet_relocateコマンド
TestSheet %>%
sheet_relocate(sheet = "Good_2", .after = "Good")
# 同じ
# sheet_relocate(ss = TestSheet, sheet = "Good_2", .after = "Good")
# シート名を変更:sheet_renameコマンド
TestSheet %>%
sheet_rename(sheet = "Good_2", new_name = "KARADA")
# 同じ
# sheet_rename(ss = TestSheet, sheet = "Good_2", new_name = "KARADA")
# シートにデータを書き込み:sheet_writeコマンド
TestSheet %>%
sheet_write(data = TestData, sheet = "KARADA")
# 同じ
# sheet_write(ss = TestSheet, data = TestData, ss = TestSheet, sheet = "KARADA")
# シートに列/行の幅/高さを自動調整:range_autofitコマンド
# 対象範囲を指定:rangeオプション;行"1:2"/列"A:B",名前付き範囲
# 行/列の指定:dimensionオプション;"columns"/"rows"
TestSheet %>%
range_autofit(sheet = "KARADA", range = "A", dimension = "columns")
# 同じ
# range_autofit(ss = TestSheet, sheet = "KARADA", range = "A", dimension = "columns")
# 指定セルの削除:range_deleteコマンド
# 対象範囲を指定:rangeオプション;行"1:2"/列"A:B",名前付き範囲
# セル削除後の移動:shiftオプション;"up"/"left"
TestSheet %>%
range_delete(sheet = "KARADA", range = "C5:D10", shift = "up")
# 同じ
# range_autofit(ss = TestSheet, sheet = "KARADA",
# range = "C5:D10", shift = "up")
########
# シートIDで全データを取得する:read_sheetコマンド
# 取得対象のシートは共有されている必要があります
ReadData <- read_sheet(ss = "1rUW-cf4j3yXoJvErMmpS2kZDkfN6Hk7NUVCIWM124oY",
sheet = "Good")
#確認
ReadData
# A tibble: 6 × 5
# ID Group A_Data B_Data C_Data
# <dbl> <chr> <dbl> <dbl> <dbl>
#1 1 Group_04 3 67 98
#2 2 Group_04 36 58 51
#3 3 Group_02 31 92 86
#4 4 Group_02 29 82 78
#5 5 Group_01 5 97 69
#6 6 Group_04 2 72 59
# シートIDで範囲を指定してデータを取得する:range_readコマンド
# 取得対象のシートは共有されている必要があります
# 対象範囲を指定:rangeオプション;行"1:2"/列"A:B",名前付き範囲
ReadData <- range_read(ss = "1rUW-cf4j3yXoJvErMmpS2kZDkfN6Hk7NUVCIWM124oY",
sheet = "Good", range = "B3:E6")
#確認
ReadData
# A tibble: 3 × 4
# Group_04 `36` `58` `51`
# <chr> <dbl> <dbl> <dbl>
# 1 Group_02 31 92 86
# 2 Group_02 29 82 78
# 3 Group_01 5 97 69
# スプレッドシートのプロパティを確認:sheet_propertiesコマンド
TestSheet %>%
sheet_properties()
# A tibble: 4 × 8
# name index id type visible grid_rows grid_columns data
# <chr> <int> <int> <chr> <lgl> <int> <int> <list>
#1 からだ 0 782193909 GRID TRUE 31 5 <NULL>
#2 いいもの 1 768578770 GRID TRUE 1000 26 <NULL>
#3 Good 2 706663824 GRID TRUE 7 5 <NULL>
#4 KARADA 3 1135385526 GRID TRUE 31 5 <NULL>
少しでも、あなたの解析が楽になりますように!!