Skip to content
cynthiahqy edited this page Mar 8, 2023 · 20 revisions

Welcome to the conformr-project wiki!

Gitmoji

A rough guide to what emojis in commit messages mean (somewhat inspired by gitmoji.dev

  • 📦 package related changes: modify extras, render docs, build package, bump version etc.
  • 💥 breaking changes
  • 🔥 remove code/content (also: remove)
  • 🧹 clean up, remove unused/dead code, documentation etc.
  • (🚚 reorganise/move files, content etc.)
  • 💬 :speech_balloon: add/modify cli messages
  • 🚧 WIP: code that doesn't yet work properly
  • 🦴 :bone: litr doc changes, add placeholder sections, skeleton code
  • 🐛 fix minor code bugs
  • ✏️ fix typos, minor content additions, renaming sections
  • 📝 add extended documentation, design notes (also: add note)
  • docs: add/modify roxygen2 strings
  • chore: add/modify project assets (.gitignore, Makefiles etc.)

Planned Packages

The initial package has been split into 3 packages to reflect the different conceptual and tooling contributions:

xmap / crossmap for S3 class implementation

  • designed around graph representation of cross mapping rather than tabular form.
  • more conceptual details of the mathematical abstractions (graph/matrix properties)
  • implements validation of crossmap properties (conditions necessary to guarantee no loss/corruption of data in transformation)
  • print methods etc.
  • contains highly stylised toy examples for illustration and testing.
  • minimal dependencies

xmaptools for auxiliary functions / enhancements:

  • visualisation of crosswalks and crossmaps,
  • conversion of crossmaps to non-essential classes (igraph, sparse-matrix etc.)
  • helpers for generating/modifying weights -- i.e. for perturbation analysis, data-driven mappings, equal weight default
  • contains simplified versions of real world crosswalks with a bias towards nice visualisations.
  • depends on xmap

conformr for workflow support:

  • data-wrangling focused vignettes, practical how-to's and tutorials
  • multi-map and grouped transformations
  • source data validation (no missingness etc.)
  • focused on actually transforming the data
  • ships with "real world" data and crosswalk examples
  • depends on both xmap, and probably suggests xmaptools

Planned classes & functions

xmap subclasses

  • xmap_df
  • xmap_tbl
  • xmap_igraph
  • xmap_matrix

links generics & methods

generic\method data.frame tibble igraph matrix
new_xmap_*
as_xmap()
as_*_xmap()
validate_as_xmap()
df_check_*()

new_xmap: xmap_ (construction)

  • new_xmap_df()
  • new_xmap_igraph()
  • new_xmap_matrix()

validate:

  • validate_as_xmap()
  • has_<condition>
  • check_<condition>

as_xmap: xmap_ (coercion)

  • as_xmap()
  • as_<maptype>_()
    • recode
    • agg
    • disagg
    • unit

xmap generics & methods

is_xmap: bool

  • is_xmap()
  • is_xmap_<subclass>()

has_links: bool

  • has_<linktype>_links
    • 1to1, recode
    • 1fromM, collapse, Mto1
    • 1toM, split

modify_xmap: xmap_

  • reverse()
  • switch_<attr>
    • from
    • to
    • weights
  • xmap_bind()

print/plot:

  • print()
  • viz_as_<viztype>(): ggplot; xmap_graph_viz()
    • graph
    • matrix
generic\method xmap_df xmap_tbl xmap_igraph xmap_matrix
is_xmap_*()
has_*_links()
print()
switch_*()
reverse()
xmap_bind()
as_xmap_*()
viz_as_*()

Class Diagram(-ish)

classDiagram
    direction RL
    xmap_df <|-- dataframe
    xmap <.. xmap_tbl
    xmap_tbl <|-- xmap_df
    xmap <.. xmap_igraph
    xmap <.. xmap_matrix
    x_from --* xmap
    x_to --* xmap
    x_weights --* xmap
    class xmap {
        <<Abstract>>
        List~from,to,weights~
        +attr~char~ col_from
        +attr~char~ col_to
        +attr~char~ col_weights
        -attr~char-vector~ from_set
        -attr~bool-vector~ link_types
        + has_*_links()*
        + print()*
        + xmap_viz_*()*
        + switch_*()*
        + reverse()*
        + bind()*
        + is_xmap()*
    }
    class x_to {
        Vector~char~
        - has_1fromM()
        + has_collapse_links()
    }
    class x_weights {
        Vector~dbl~
        - has_1to1()
        + has_recode_links()
        - has_1toM()
        + has_split_links()
    }
    class x_from {
        Vector~dbl~
        - get_from_set()
    }
    class dataframe{
      List~3 columns~
      +validate_as_xmap()
      +new_xmap_*()
      +as_xmap_*()
      -new_xmap(type="df,tbl,igraph,matrix")
      -as_xmap(type="df,tbl,igraph,matrix")
      -df_checks_()
    }
    class xmap_tbl {
        +xmap_viz_matrix()
        +xmap_viz_bigraph()
    }
    class xmap_df {
        +as_xmap_igraph()
        +as_xmap_matrix()
        +xmap_reverse()
        +xmap_switch_from()
        +xmap_switch_to()
        +xmap_swtich_weights()
        +print()
    }
    class xmap_igraph {
        +as_xmap_df()
        +as_xmap_matrix()
    }
    class xmap_matrix {
        +as_xmap_df()
        +as_xmap_igraph()
    }
Loading
Clone this wiki locally