Learn R Programming

googlesheets4 (version 0.1.0)

spread_sheet: Spread a data frame of cells into spreadsheet shape

Description

Reshapes a data frame of cells (presumably the output of sheets_cells()) into another data frame, i.e., puts it back into the shape of the source spreadsheet. This function exists primarily for internal use and for testing. The flagship function read_sheet() is what most users are looking for. It is basically sheets_cells() + spread_sheet().

Usage

spread_sheet(
  df,
  col_names = TRUE,
  col_types = NULL,
  na = "",
  trim_ws = TRUE,
  guess_max = min(1000, max(df$row)),
  .name_repair = "unique"
)

Arguments

df

A data frame with one row per (nonempty) cell, integer variables row and column (probably referring to location within the spreadsheet), and a list-column cell of SHEET_CELL objects.

col_names

TRUE to use the first row as column names, FALSE to get default names, or a character vector to provide column names directly. If user provides col_types, col_names can have one entry per column or one entry per unskipped column.

col_types

Column types. Either NULL to guess all from the spreadsheet or a string of readr-style shortcodes, with one character or code per column. If exactly one col_type is specified, it is recycled. See Details for more.

na

Character vector of strings to interpret as missing values. By default, blank cells are treated as missing data.

trim_ws

Logical. Should leading and trailing whitespace be trimmed from cell contents?

guess_max

Maximum number of data rows to use for guessing column types.

.name_repair

Handling of column names. By default, googlesheets4 ensures column names are not empty and are unique. There is full support for .name_repair as documented in tibble::tibble().

Value

A tibble in the shape of the original spreadsheet, but enforcing user's wishes regarding column names, column types, NA strings, and whitespace trimming.

Examples

Run this code
# NOT RUN {
if (sheets_has_token()) {
  df <- sheets_cells(sheets_example("mini-gap"))
  spread_sheet(df)

  # ^^ gets same result as ...
  read_sheet(sheets_example("mini-gap"))
}
# }

Run the code above in your browser using DataLab