Learn R Programming

replyr (version 0.3.01)

replyr_moveValuesToColumns: Spread values found in rowKeyColumns row groups as new columns (experimental, not fully tested on multiple data suppliers).

Description

Spread values found in columnToTakeValuesFrom row groups as new columns labeled by columnToTakeKeysFrom. from nameForNewValueColumn. This is denormalizing operation, or essentially a tidyr::spread, dplyr::dcast, or pivot. Similar interface as in the cdata package (though does not perform pre/post condition checks).

Usage

replyr_moveValuesToColumns(data, columnToTakeKeysFrom, columnToTakeValuesFrom,
  rowKeyColumns, ..., fill = NA, sep = NULL, maxcols = 100,
  dosummarize = TRUE,
  tempNameGenerator = makeTempNameGenerator("replyr_moveValuesToColumns"))

Arguments

data

data.frame to work with.

columnToTakeKeysFrom

character name of column build new column names from.

columnToTakeValuesFrom

character name of column to get values from.

rowKeyColumns

character array names columns that should be table keys.

...

force later arguments to bind by name

fill

value to fill in missing values from original (both those that are originally explicitly NA, and those not present as rows).

sep

character, if not null build composite column names as COLsepVALUE, use new columns names are just VALUE.

maxcols

maximum number of values to expand to columns

dosummarize

logical, if TRUE finish the moveValuesToColumns by summarizing rows.

tempNameGenerator

temp name generator produced by replyr::makeTempNameGenerator, used to record dplyr::compute() effects.

Value

data item

Examples

Run this code

d <- data.frame(
  index = c(1, 2, 3, 1, 2, 3),
  meastype = c('meas1','meas1','meas1','meas2','meas2','meas2'),
  meas = c('m1_1', 'm1_2', 'm1_3', 'm2_1', 'm2_2', 'm2_3'),
  stringsAsFactors = FALSE)
replyr_moveValuesToColumns(d,
                           columnToTakeKeysFrom= 'meastype',
                           columnToTakeValuesFrom= 'meas',
                           rowKeyColumns= 'index',
                           sep= '_')
# cdata::moveValuesToColumns(d,
#                            columnToTakeKeysFrom= 'meastype',
#                            columnToTakeValuesFrom= 'meas',
#                            rowKeyColumns= 'index',
#                            sep= '_')


Run the code above in your browser using DataLab