STATcubeR
STATcubeR copied to clipboard
re-implement annotatons
In early versions, STATcubeR used to include annotations in the output of as.dataframe.sc_table()
. This was dropped when support for OGD Datasets was introduced in #11 . Back then, the annotations were included using separate columns.
It is planned to re-implement this feature in a slightly different manner using {tibble}
and {vctrs}
by providing a custom vector class that acts as a "annotated numeric". The result of printing those values should look something like this
Annotations should either replace the values while printing or use color coding to reference a specific annotation
The "annotation legend" (which color corresponds to which annotation) can then be included in the footer of the tibble. Some technical details
- [ ] In order to keep things backwards compatible, the default behavior of
sc_tabulate()
andas.data.frame.sc_table()
should be to return simple tibbles that only include columns of typenumeric
andfactor
. Adding annotations should be "opt-in" - [x] Annotated cell values containing a zero can usually be interpreted as not available. Therefore, it makes sense to show the annotation code instead of the zero value (first screenshot). For annotated non-zero values, the values will be color-coded based on the annotation (second screnshot)
- [x] The "annotated numeric" class used to represent the columns will have a
as.numeric()
method which drops the annotations and returns a canonical double-type - [ ] Aggregating annotations will not be pursued. If a
sc_tabulate()
is called in a way where aggregation viarowsums()
is necessary andannotations
is set toTRUE
, an error will be thrown. - [x] Color-coding values with multiple annotations will not be pursued. Instead, one of the annotations will be selected for the color.