Nothing
## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## -----------------------------------------------------------------------------
# convert from this format
dadmomw <- wrapr::build_frame(
"famid" , "named", "incd", "namem", "incm" |
1 , "Bill" , 30000 , "Bess" , 15000 |
2 , "Art" , 22000 , "Amy" , 18000 |
3 , "Paul" , 25000 , "Pat" , 50000 )
# to this format
dadmomt <- wrapr::build_frame(
"famid" , "dadmom", "name", "inc" |
1 , "d" , "Bill", 30000 |
1 , "m" , "Bess", 15000 |
2 , "d" , "Art" , 22000 |
2 , "m" , "Amy" , 18000 |
3 , "d" , "Paul", 25000 |
3 , "m" , "Pat" , 50000 )
## ----echo=FALSE---------------------------------------------------------------
knitr::kable(dadmomw[1, , drop=FALSE])
## -----------------------------------------------------------------------------
library("cdata")
# identify the record key
recordKeys <- "famid"
# specify the outgoing record shape
outgoing_record <- wrapr::qchar_frame(
"dadmom" , "name", "inc" |
"d" , named , incd |
"m" , namem , incm )
## -----------------------------------------------------------------------------
# put it all together into a layout
layout <- rowrecs_to_blocks_spec(
outgoing_record,
recordKeys = recordKeys)
# confirm we have the right layout
print(layout)
## ----eval=FALSE---------------------------------------------------------------
# # this is equivalent to the above call
# rowrecs_to_blocks_spec(
# outgoing_record,
# recordKeys = recordKeys,
# controlTableKeys = 'dadmom')
## -----------------------------------------------------------------------------
# apply the layout
dadmomw %.>%
layout %.>%
knitr::kable(.)
## ----eval=FALSE, include=FALSE------------------------------------------------
# # how we got the below row. can't run yet since we haven't defined anything
# grades %.>% blocks_to_rowrecs(., keyColumns= recordKeys, incoming_record)
## -----------------------------------------------------------------------------
library("cdata")
# identify the record keys
recordKeys <- c("ID", "Year")
# specify the incoming record shape
incoming_record <- wrapr::qchar_frame(
"Test" , "Fall" , "Spring" , "Winter" |
"1" , Fall1 , Spring1 , Winter1 |
"2" , Fall2 , Spring2 , Winter2 )
# specify the outgoing record shape
outgoing_record <- wrapr::qchar_frame(
"Time" , "Test1" , "Test2" |
"Fall" , Fall1 , Fall2 |
"Spring" , Spring1 , Spring2 |
"Winter" , Winter1 , Winter2 )
# put it all together into a layout
layout <- layout_specification(
incoming_shape = incoming_record,
outgoing_shape = outgoing_record,
recordKeys = recordKeys)
# confirm we have the right layout
print(layout)
# example data
grades <- wrapr::build_frame(
"ID" , "Test", "Year", "Fall", "Spring", "Winter" |
1 , 1 , 2008 , 15 , 16 , 19 |
1 , 1 , 2009 , 12 , 13 , 27 |
1 , 2 , 2008 , 22 , 22 , 24 |
1 , 2 , 2009 , 10 , 14 , 20 |
2 , 1 , 2008 , 12 , 13 , 25 |
2 , 1 , 2009 , 16 , 14 , 21 |
2 , 2 , 2008 , 13 , 11 , 29 |
2 , 2 , 2009 , 23 , 20 , 26 |
3 , 1 , 2008 , 11 , 12 , 22 |
3 , 1 , 2009 , 13 , 11 , 27 |
3 , 2 , 2008 , 17 , 12 , 23 |
3 , 2 , 2009 , 14 , 9 , 31 )
# apply the layout
grades %.>%
layout %.>%
knitr::kable(.)
## -----------------------------------------------------------------------------
a <- wrapr::build_frame(
"Ind" , "Treatment", "value" |
"Ind1", "Treat" , 1 |
"Ind2", "Treat" , 2 |
"Ind1", "Cont" , 3 |
"Ind2", "Cont" , 4 )
b <- wrapr::build_frame(
"Ind" , "Treat" , "Cont"|
"Ind1", 1 , 3 |
"Ind2", 2 , 4 )
## ----echo=FALSE---------------------------------------------------------------
knitr::kable(b[1, , drop=FALSE])
## -----------------------------------------------------------------------------
library("cdata")
# identify the record key
recordKeys <- "Ind"
# specify the incoming record shape
incoming_record <- wrapr::qchar_frame(
"Treatment" , "value" |
"Treat" , Treat |
"Cont" , Cont )
# put it all together into a layout
layout <- blocks_to_rowrecs_spec(
incoming_record,
recordKeys = recordKeys)
# confirm we have the right layout
print(layout)
# apply the layout
a %.>%
layout %.>%
knitr::kable(.)
## -----------------------------------------------------------------------------
a <- wrapr::build_frame(
"Name" , "50", "100", "150", "200", "250", "300", "350" |
"Carla", 1.2 , 1.8 , 2.2 , 2.3 , 3 , 2.5 , 1.8 |
"Mace" , 1.5 , 1.1 , 1.9 , 2 , 3.6 , 3 , 2.5 )
b <- wrapr::build_frame(
"Name" , "Time", "Score" |
"Carla", 50 , 1.2 |
"Carla", 100 , 1.8 |
"Carla", 150 , 2.2 |
"Carla", 200 , 2.3 |
"Carla", 250 , 3 |
"Carla", 300 , 2.5 |
"Carla", 350 , 1.8 |
"Mace" , 50 , 1.5 |
"Mace" , 100 , 1.1 |
"Mace" , 150 , 1.9 |
"Mace" , 200 , 2 |
"Mace" , 250 , 3.6 |
"Mace" , 300 , 3 |
"Mace" , 350 , 2.5 )
## ----echo=FALSE---------------------------------------------------------------
knitr::kable(a[1, , drop=FALSE])
## -----------------------------------------------------------------------------
library("cdata")
# how to find records
recordKeys <- "Name"
# specify the outgoing record shape, using a helper function
# (and print it -- notice that it's a data frame)
( outgoing_record <- build_unpivot_control(
nameForNewKeyColumn = "Time",
nameForNewValueColumn = "Score",
columnsToTakeFrom = setdiff(colnames(a), recordKeys)) )
# put it all together into a layout
layout <- rowrecs_to_blocks_spec(
outgoing_record,
recordKeys = recordKeys)
# confirm we have the right layout
print(layout)
# apply the layout
a %.>%
layout %.>%
transform(., Time = as.numeric(Time)) %.>%
# sort the data frame by Name and then Time
.[order(.$Name, .$Time), , drop = FALSE] %.>%
knitr::kable(., row.names = FALSE)
## -----------------------------------------------------------------------------
a <- wrapr::build_frame(
"id" , "trt", "work.T1", "play.T1", "talk.T1", "total.T1", "work.T2", "play.T2", "talk.T2", "total.T2" |
"x1.1", "cnt", 0.3443 , 0.7842 , 0.1079 , 0.888 , 0.6484 , 0.8795 , 0.7234 , 0.5631 |
"x1.2", "tr" , 0.06132 , 0.8427 , 0.3339 , 0.04686 , 0.2348 , 0.1971 , 0.5164 , 0.7618 )
b <- wrapr::build_frame(
"id" , "trt", "time", "work" , "play", "talk", "total" |
"x1.1", "cnt", "T1" , 0.3443 , 0.7842, 0.1079, 0.888 |
"x1.1", "cnt", "T2" , 0.6484 , 0.8795, 0.7234, 0.5631 |
"x1.2", "tr" , "T1" , 0.06132, 0.8427, 0.3339, 0.04686 |
"x1.2", "tr" , "T2" , 0.2348 , 0.1971, 0.5164, 0.7618 )
## ----echo=FALSE---------------------------------------------------------------
knitr::kable(a[1, , drop=FALSE])
## -----------------------------------------------------------------------------
library("cdata")
# identify the record keys
recordKeys <- c("id", "trt")
# specify the outgoing record shape
outgoing_record <- wrapr::qchar_frame(
"time" , "work" , "play" , "talk" , "total" |
"T1" , work.T1, play.T1, talk.T1, total.T1 |
"T2" , work.T2, play.T2, talk.T2, total.T2 )
# put it all together into a layout
layout <- rowrecs_to_blocks_spec(
outgoing_record,
recordKeys = recordKeys)
# confirm we have the right layout
print(layout)
# apply the layout
a %.>%
layout %.>%
# reorder the frame by the record keys plus time
.[wrapr::orderv(.[ , c(recordKeys, "time"), drop = FALSE]), , drop = FALSE] %.>%
knitr::kable(., row.names = FALSE)
## -----------------------------------------------------------------------------
inv_layout <- t(layout)
print(inv_layout)
# apply the inverse layout
b %.>%
inv_layout %.>%
knitr::kable(.)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.