The cdata
package is a demonstration of the “coordinatized data” theory and includes an implementation of the “fluid data” methodology. The recommended tutorial is: Fluid data reshaping with cdata. We also have a short free cdata screencast (and another example can be found here).
Briefly cdata
supplies data transform operators that:
DBI
data source.pivot
and un-pivot
.A quick example:
run_vignette <- requireNamespace("RSQLite", quietly = TRUE) &&
requireNamespace("DBI", quietly = TRUE)
library("cdata")
my_db <- DBI::dbConnect(RSQLite::SQLite(),
":memory:")
# pivot example
d <- build_frame(
"meas", "val" /
"AUC" , 0.6 /
"R2" , 0.2 )
DBI::dbWriteTable(my_db,
'd',
d,
temporary = TRUE)
qlook(my_db, 'd')
## table `d` SQLiteConnection
## nrow: 2
## 'data.frame': 2 obs. of 2 variables:
## $ meas: chr "AUC" "R2"
## $ val : num 0.6 0.2
cT <- build_pivot_control_q('d',
columnToTakeKeysFrom= 'meas',
columnToTakeValuesFrom= 'val',
my_db = my_db)
tab <- blocks_to_rowrecs_q('d',
keyColumns = NULL,
controlTable = cT,
my_db = my_db)
qlook(my_db, tab)
## table `mvtcq_46255426283341597082_0000000000` SQLiteConnection
## nrow: 1
## 'data.frame': 1 obs. of 2 variables:
## $ AUC: num 0.6
## $ R2 : num 0.2
DBI::dbDisconnect(my_db)
Install via CRAN:
install.packages("cdata")
Note: cdata
is targeted at data with “tame column names” (column names that are valid both in databases, and as R
unquoted variable names) and basic types (column values that are simple R
types such as character
, numeric
, logical
, and so on).