Начало работы
#install.packages('googlesheets4')
#install.packages("rlang")
library(googlesheets4)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
# авторизация
gs4_auth(email = "191becon@gmail.com")
Создание гугл таблицы
# данные для теста
my_iris <- iris
my_mtcars <- mtcars
# создаём докс
ss1 <- gs4_create("demo_dox",
sheets = list(iris = head(my_iris),
mtcars = my_mtcars))
## Creating new Sheet: "demo_dox"
# открыть созданный Google Dox
gs4_browse(ss1)
Чтение гугл таблицы
# чтение листа из гугл таблиц
ss2 <- as_sheets_id("1cdtvY1v3koIWYGYMpr2nPHOW_suoOwgQsPRBgOSDbtc")
data <- read_sheet(ss2, sheet = "iris_new")
## Reading from "demo_dox"
## Range "'iris_new'"
Основные функции
# создать новый лист
sheet_add(ss1, sheet = "mtcars_new", .after = "mtcars")
## Adding sheet(s) in "demo_dox"
## New sheet(s): "mtcars_new"
# запись данных на новый лист
sheet_write(data = my_iris,
ss = ss1,
sheet = "iris_new")
## Writing to "demo_dox"
## Writing to sheet "iris_new"
# дописать значиения
sheet_append(data = tail(my_iris, 20),
ss = ss1,
sheet = "iris")
## Writing to "demo_dox"
## Appending 20 row(s) to "iris"
# получить список листов google таблицы
sheet_names(ss1)
## [1] "iris" "mtcars" "mtcars_new" "iris_new"
#Переименовать лист
#По названию
sheet_rename(ss1, "iris", "Ирис")
## Renaming sheet "iris" to "Ирис"
#По номеру
sheet_rename(ss1, 2, "Машинки")
## Renaming sheet "mtcars" to "Машинки"
Использование формул в гугл таблицах
#Задаем столбец (таблицу) из чисел
dat <- data.frame(x = c(1, 5, 3, 2, 4, 6))
#Создаем гугл таблицу, в которую записываем столбец
ss3 <- gs4_create("gs4-formula-demo", sheets = dat)
## Creating new Sheet: "gs4-formula-demo"
ss3
## Spreadsheet name: gs4-formula-demo
## ID: 1uG3tCQN8Huo9_zlf93Q8plcssR8DdJPEExmewjV-rPQ
## Locale: ru_RU
## Time zone: Etc/GMT
## # of sheets: 1
##
## (Sheet name): (Nominal extent in rows x columns)
## dat: 7 x 1
#Создаем таблицу, в которой в левом столбце - название (desc), в правом - формула
summaries <- tibble::tribble(
~desc, ~formulas,
#Можно писать функции, которые есть в гугл таблицах и в R
"Максимум", "=max(A:A)",
"Сумма", "=sum(A:A)",
"Минимум", "=min(A:A)",
#Можно писать логические функции
"A2 > A3?", "=A2>A3",
"A2*A3 - A4", "=A2*A3 - A4",
#Можно писать функции, которые есть только в гугл таблицах
"Срзнач", "=СРЗНАЧ(A:A)",
#Но нельзя те, которые есть только в R
"Модуль", "=A3%%A4"
)
#Переводим стобец формул в формат gs4_formula
summaries$formulas <- gs4_formula(summaries$formulas)
summaries
## # A tibble: 7 x 2
## desc formulas
## <chr> <fmla>
## 1 Максимум =max(A:A)
## 2 Сумма =sum(A:A)
## 3 Минимум =min(A:A)
## 4 A2 > A3? =A2>A3
## 5 A2*A3 - A4 =A2*A3 - A4
## 6 Срзнач =СРЗНАЧ(A:A)
## 7 Модуль =A3%%A4
#Записываем таблицу summaries в ячейку B1
range_write(ss3, data = summaries, range = "B1", reformat = FALSE)
## Editing "gs4-formula-demo"
## Writing to sheet "dat"
## Changing dims: (7 x 1) --> (8 x 3)
#Смотрим результаты
gs4_browse(ss3)
Использование формул в R и перенос в гугл таблицы
data = data %>% mutate(new = Sepal.Length > 5)
ss4 <- gs4_create("demo_dox",
sheets = data)
## Creating new Sheet: "demo_dox"
gs4_browse(ss4)
Примеры таблиц для упражнений
gs4_examples()
## mini-gap
## "1k94ZVVl6sdj0AXfK9MQOuQ4rOhd1PULqpAu2_kr9MAU"
## gapminder
## "1U6Cf_qEOhiR9AZqTqS3mbMF3zt2db48ZP5v3rkrAEJY"
## deaths
## "1VTJjWoP1nshbyxmL9JqXgdVsimaYty21LGxxs018H2Y"
## chicken-sheet
## "1ct9t1Efv8pAGN9YO5gC2QfRq2wT4XjNoTMXpVeUghJU"
## formulas-and-formats
## "1wPLrWOxxEjp3T1nv2YBxn63FX70Mz5W5Tm4tGc-lRms"
## cell-contents-and-formats
## "1peJXEeAp5Qt3ENoTvkhvenQ36N3kLyq6sq9Dh2ufQ6E"
## attr(,"class")
## [1] "drive_id"
ss5<- as_sheets_id(gs4_example("formulas-and-formats"))
gs4_browse(ss5)