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

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

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 rowrecs_to_blocks.

checkKeys

passed to rowrecs_to_blocks.

strict

passed to rowrecs_to_blocks.

allow_rqdatatable

logical, if TRUE allow rqdatatable shortcutting on simple conversions.

Value

a record specification object

Examples

d <- wrapr::build_frame( "id" , "AUC", "R2" | 1 , 0.7 , 0.4 | 2 , 0.8 , 0.5 ) transform <- rowrecs_to_blocks_spec( wrapr::qchar_frame( "measure", "value" | "AUC" , AUC | "R2" , R2 ), recordKeys = "id") print(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 = FALSE, strict = FALSE, allow_rqdatatable = TRUE) #> } #>
d %.>% transform
#> id measure value #> 1 1 AUC 0.7 #> 2 2 AUC 0.8 #> 3 1 R2 0.4 #> 4 2 R2 0.5
inv_transform <- t(transform) print(inv_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 = FALSE, strict = FALSE, allow_rqdatatable = TRUE) #> } #>
# identity (in structure) d %.>% transform %.>% inv_transform
#> id AUC R2 #> 1 1 0.7 0.4 #> 2 2 0.8 0.5
# identity again (using .() "immediate" notation) d %.>% transform %.>% .(t(transform))
#> id AUC R2 #> 1 1 0.7 0.4 #> 2 2 0.8 0.5