Create a block records to row records transform specification object that holds the pivot control table, specification of extra row keys, and control table keys.

blocks_to_rowrecs_spec(
  controlTable,
  ...,
  recordKeys = character(0),
  controlTableKeys = colnames(controlTable)[[1]],
  checkNames = TRUE,
  checkKeys = TRUE,
  strict = FALSE,
  allow_rqdatatable = FALSE
)

Arguments

controlTable

an all character data frame or cdata pivot control.

...

not used, force later arguments to bind by name.

recordKeys

vector of columns identifying records.

controlTableKeys

vector of keying columns of the controlTable.

checkNames

passed to blocks_to_rowrecs.

checkKeys

passed to blocks_to_rowrecs.

strict

passed to blocks_to_rowrecs.

allow_rqdatatable

logical, if TRUE allow rqdatatable shortcutting on simple conversions.

Value

a record specification object

Examples

d <- wrapr::build_frame( "id", "measure", "value" | 1 , "AUC" , 0.7 | 1 , "R2" , 0.4 | 2 , "AUC" , 0.8 | 2 , "R2" , 0.5 ) transform <- blocks_to_rowrecs_spec( wrapr::qchar_frame( "measure", "value" | "AUC" , AUC | "R2" , R2 ), recordKeys = "id") print(transform)
#> { #> block_record <- wrapr::qchar_frame( #> "id" , "measure", "value" | #> . , "AUC" , AUC | #> . , "R2" , R2 ) #> block_keys <- c('id', 'measure') #> #> # becomes #> #> row_record <- wrapr::qchar_frame( #> "id" , "AUC", "R2" | #> . , AUC , R2 ) #> row_keys <- c('id') #> #> # args: c(checkNames = TRUE, checkKeys = TRUE, strict = FALSE, allow_rqdatatable = FALSE) #> } #>
d %.>% transform
#> id AUC R2 #> 1 1 0.7 0.4 #> 2 2 0.8 0.5
inv_transform <- t(transform) print(inv_transform)
#> { #> row_record <- wrapr::qchar_frame( #> "id" , "AUC", "R2" | #> . , AUC , R2 ) #> row_keys <- c('id') #> #> # becomes #> #> block_record <- wrapr::qchar_frame( #> "id" , "measure", "value" | #> . , "AUC" , AUC | #> . , "R2" , R2 ) #> block_keys <- c('id', 'measure') #> #> # args: c(checkNames = TRUE, checkKeys = TRUE, strict = FALSE, allow_rqdatatable = FALSE) #> } #>
# identity (in structure) d %.>% transform %.>% inv_transform
#> id measure value #> 1 1 AUC 0.7 #> 2 1 R2 0.4 #> 3 2 AUC 0.8 #> 4 2 R2 0.5
# identity again (using .() "immediate" notation) d %.>% transform %.>% .(t(transform))
#> id measure value #> 1 1 AUC 0.7 #> 2 1 R2 0.4 #> 3 2 AUC 0.8 #> 4 2 R2 0.5