Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
1 of 40 committers (2.5%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (17.2%) to scientific vocabulary
Keywords
data-model
data-warehousing
datawarehousing
dbi
dbplyr
r
relational-databases
Keywords from Contributors
network-graph
interface
standardization
graph-algorithms
data-profiler
data-quality
continuous-integration
geo
mathematics
network-analysis
Last synced: 6 months ago
·
JSON representation
Repository
Working with relational data models in R
Basic Info
- Host: GitHub
- Owner: cynkra
- License: other
- Language: R
- Default Branch: main
- Homepage: https://dm.cynkra.com
- Size: 57.1 MB
Statistics
- Stars: 518
- Watchers: 8
- Forks: 48
- Open Issues: 222
- Releases: 32
Topics
data-model
data-warehousing
datawarehousing
dbi
dbplyr
r
relational-databases
Created over 6 years ago
· Last pushed 6 months ago
Metadata Files
Readme
Changelog
Contributing
License
Code of conduct
README.Rmd
---
output:
github_document:
html_preview: false
---
```{r setup, include = FALSE}
library(tidyverse)
library(dm)
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
knit_print.grViz <- function(x, ..., options) {
svg <- DiagrammeRsvg::export_svg(x)
svg <- sub('[<]polygon fill="#ffffff"[^/]+/[>]\n', "", svg)
path <- paste0(options$fig.path, options$label, ".svg")
writeLines(svg, path)
knitr::asis_output(paste0('
'))
}
vctrs::s3_register("knitr::knit_print", "grViz")
clean_output <- function(x, options) {
index <- x
index <- gsub("─", "-", index)
index <- strsplit(paste(index, collapse = "\n"), "\n---\n")[[1]][[2]]
writeLines(index, "index.md")
x <- fansi::strip_sgr(x)
x
}
options(cli.num_colors = 256)
local({
hook_source <- knitr::knit_hooks$get("document")
knitr::knit_hooks$set(document = clean_output)
})
# For initial rendering, can be removed
usethis::use_build_ignore("index.md")
```
# [dm](https://dm.cynkra.com/)
[](https://lifecycle.r-lib.org/articles/stages.html)
[](https://github.com/cynkra/dm/actions)
[](https://app.codecov.io/gh/cynkra/dm?branch=main)
[](https://CRAN.R-project.org/package=dm)
[](https://rstudio.cloud/project/523482)
> Are you using multiple data frames or database tables in R? Organize them with dm.
>
> - Use it for data analysis today.
> - Build data models tomorrow.
> - Deploy the data models to your organization's Relational Database Management System (RDBMS) the day after.
## Overview
dm bridges the gap in the data pipeline between individual data frames and relational databases.
It's a grammar of joined tables that provides a consistent set of verbs for consuming, creating, and deploying relational data models.
For individual researchers, it broadens the scope of datasets they can work with and how they work with them.
For organizations, it enables teams to quickly and efficiently create and share large, complex datasets.
dm objects encapsulate relational data models constructed from local data frames or lazy tables connected to an RDBMS.
dm objects support the full suite of dplyr data manipulation verbs along with additional methods for constructing and verifying relational data models, including key selection, key creation, and rigorous constraint checking.
Once a data model is complete, dm provides methods for deploying it to an RDBMS.
This allows it to scale from datasets that fit in memory to databases with billions of rows.
## Features
dm makes it easy to bring an existing relational data model into your R session.
As the dm object behaves like a named list of tables it requires little change to incorporate it within existing workflows.
The dm interface and behavior is modeled after dplyr, so you may already be familiar with many of its verbs.
dm also offers:
- visualization to help you understand relationships between entities represented by the tables
- simpler joins that "know" how tables are related, including a "flatten" operation that automatically follows keys and performs column name disambiguation
- consistency and constraint checks to help you understand (and fix) the limitations of your data
That's just the tip of the iceberg.
See [Getting started](https://dm.cynkra.com/articles/dm.html) to hit the ground running and explore all the features.
## Installation
The latest stable version of the {dm} package can be obtained from [CRAN](https://CRAN.R-project.org/package=dm) with the command
```r
install.packages("dm")
```
The latest development version of {dm} can be installed from R-universe:
```r
# Enable repository from cynkra
options(
repos = c(
cynkra = "https://cynkra.r-universe.dev",
CRAN = "https://cloud.r-project.org"
)
)
# Download and install dm in R
install.packages('dm')
```
or from GitHub:
```r
# install.packages("devtools")
devtools::install_github("cynkra/dm")
```
## Usage
Create a dm object (see [Getting started](https://dm.cynkra.com/articles/dm.html) for details).
```{r}
library(dm)
dm <- dm_nycflights13(table_description = TRUE)
dm
```
dm is a named list of tables:
```{r}
names(dm)
nrow(dm$airports)
dm$flights %>%
count(origin)
```
Visualize relationships at any time:
```{r draw, screenshot.force = FALSE}
dm %>%
dm_draw()
```
Simple joins:
```{r}
dm %>%
dm_flatten_to_tbl(flights)
```
Check consistency:
```{r}
dm %>%
dm_examine_constraints()
```
Learn more in the [Getting started](https://dm.cynkra.com/articles/dm.html) article.
## Getting help
If you encounter a clear bug, please file an issue with a minimal reproducible example on [GitHub](https://github.com/cynkra/dm/issues).
For questions and other discussion, please use [community.rstudio.com](https://forum.posit.co/).
---
License: MIT © cynkra GmbH.
Funded by:
[](https://www.energie360.ch/de/)
[](https://www.cynkra.com/)
---
Please note that the 'dm' project is released with a [Contributor Code of Conduct](https://dm.cynkra.com/CODE_OF_CONDUCT.html).
By contributing to this project, you agree to abide by its terms.
Owner
- Name: cynkra
- Login: cynkra
- Kind: organization
- Email: mail@cynkra.com
- Location: Zurich, CH
- Website: https://www.cynkra.com
- Repositories: 77
- Profile: https://github.com/cynkra
We support your business and the people behind it by helping you pick the right tools, implementing and supporting solutions, training and code review.
GitHub Events
Total
- Create event: 104
- Release event: 1
- Issues event: 11
- Watch event: 20
- Delete event: 56
- Issue comment event: 109
- Push event: 237
- Pull request review event: 7
- Pull request review comment event: 8
- Pull request event: 118
- Fork event: 1
Last Year
- Create event: 104
- Release event: 1
- Issues event: 11
- Watch event: 20
- Delete event: 56
- Issue comment event: 109
- Push event: 237
- Pull request review event: 7
- Pull request review comment event: 8
- Pull request event: 118
- Fork event: 1
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Kirill Müller | k****l@c****m | 3,502 |
| Tobias | t****s@c****m | 2,535 |
| Antoine Fabri | a****i@g****m | 267 |
| Indrajeet Patil | p****e@g****m | 106 |
| Maëlle Salmon | m****n@y****e | 83 |
| github-actions[bot] | 4****] | 67 |
| Katharina Brunner | c****m | 58 |
| Maximilian Girlich | m****h@m****m | 55 |
| pat-s | p****z@g****m | 42 |
| sam | 1****n | 39 |
| jawond | j****k@g****m | 30 |
| owenjonesuob | 2****b | 27 |
| Renovate cynkra [bot] | 4****] | 20 |
| olivroy | o****1@h****m | 13 |
| jangorecki | j****i@w****l | 8 |
| Eugene Ha | 1****a | 8 |
| Eric Leung | e****c@e****m | 7 |
| balthasar | b****r@c****m | 7 |
| GitHub | n****y@g****m | 6 |
| bbecane | b****e | 6 |
| Salim B | g****t@s****e | 5 |
| Mauricio Vargas | m****s@d****l | 5 |
| Andrea Ranzato | a****a@c****m | 4 |
| Pawel Rucki | p****i@g****m | 3 |
| sam | s****o@t****i | 3 |
| Severin Thöni | s****n@c****m | 2 |
| Peter Meissner | r****r@g****m | 2 |
| Brancen Gregory | b****y@g****m | 2 |
| DavisVaughan | d****s@r****m | 2 |
| Garrick Aden-Buie | g****e@m****g | 2 |
| and 10 more... | ||
Committer Domains (Top 20 + Academic)
cynkra.com: 5
mailbox.org: 1
zhaw.ch: 1
moffitt.org: 1
rstudio.com: 1
tuni.fi: 1
dcc.uchile.cl: 1
salim.space: 1
github.com: 1
erictleung.com: 1
wit.edu.pl: 1
metoda.com: 1
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 259
- Total pull requests: 1,073
- Average time to close issues: 10 months
- Average time to close pull requests: 17 days
- Total issue authors: 50
- Total pull request authors: 25
- Average comments per issue: 1.92
- Average comments per pull request: 2.17
- Merged pull requests: 404
- Bot issues: 2
- Bot pull requests: 764
Past Year
- Issues: 6
- Pull requests: 123
- Average time to close issues: 11 days
- Average time to close pull requests: 6 days
- Issue authors: 5
- Pull request authors: 8
- Average comments per issue: 0.83
- Average comments per pull request: 0.72
- Merged pull requests: 80
- Bot issues: 0
- Bot pull requests: 57
Top Authors
Issue Authors
- krlmlr (105)
- TSchiefer (33)
- moodymudskipper (30)
- maelle (26)
- IndrajeetPatil (7)
- mgirlich (7)
- sound118 (3)
- asadow (2)
- renovate-cynkra[bot] (2)
- jangorecki (2)
- owenjonesuob (2)
- pat-s (2)
- tsilber21 (1)
- Jake-Eisaguirre (1)
- systemnova (1)
Pull Request Authors
- github-actions[bot] (712)
- krlmlr (186)
- renovate-cynkra[bot] (52)
- TSchiefer (33)
- moodymudskipper (19)
- maelle (11)
- IndrajeetPatil (11)
- owenjonesuob (8)
- olivroy (7)
- mgirlich (6)
- jangorecki (4)
- talpitoo (3)
- Copilot (3)
- DavisVaughan (2)
- guspan-tanadi (2)
Top Labels
Issue Labels
enhancement (55)
documentation (33)
debt (25)
help wanted (15)
bug (8)
epic (8)
macro (5)
integration (3)
question (1)
Pull Request Labels
CRAN release (18)
mergequeue (8)
blocked (6)
help wanted (1)
mergequeue-priority (1)
Packages
- Total packages: 2
-
Total downloads:
- cran 2,533 last-month
- Total docker downloads: 22,488
-
Total dependent packages: 8
(may contain duplicates) -
Total dependent repositories: 13
(may contain duplicates) - Total versions: 75
- Total maintainers: 1
proxy.golang.org: github.com/cynkra/dm
- Documentation: https://pkg.go.dev/github.com/cynkra/dm#section-documentation
- License: other
-
Latest release: v1.0.12
published 8 months ago
Rankings
Dependent packages count: 5.5%
Average: 5.6%
Dependent repos count: 5.8%
Last synced:
6 months ago
cran.r-project.org: dm
Relational Data Models
- Homepage: https://dm.cynkra.com/
- Documentation: http://cran.r-project.org/web/packages/dm/dm.pdf
- License: MIT + file LICENSE
-
Latest release: 1.0.12
published 8 months ago
Rankings
Stargazers count: 0.8%
Forks count: 1.6%
Average: 5.9%
Dependent repos count: 8.0%
Dependent packages count: 9.1%
Downloads: 9.7%
Maintainers (1)
Last synced:
6 months ago
Dependencies
inst/htmlwidgets/lib/jquery/bower.json
bower
.github/workflows/R-CMD-check-dev.yaml
actions
- ./.github/workflows/check * composite
- ./.github/workflows/custom/after-install * composite
- ./.github/workflows/custom/before-install * composite
- ./.github/workflows/dep-matrix * composite
- ./.github/workflows/install * composite
- ./.github/workflows/rate-limit * composite
- ./.github/workflows/update-snapshots * composite
- actions/checkout v3 composite
- r-lib/actions/setup-r v2 composite
.github/workflows/R-CMD-check.yaml
actions
- ./.github/workflows/check * composite
- ./.github/workflows/commit * composite
- ./.github/workflows/custom/after-install * composite
- ./.github/workflows/custom/before-install * composite
- ./.github/workflows/dep-matrix-suggests * composite
- ./.github/workflows/git-identity * composite
- ./.github/workflows/install * composite
- ./.github/workflows/pkgdown-build * composite
- ./.github/workflows/pkgdown-deploy * composite
- ./.github/workflows/rate-limit * composite
- ./.github/workflows/roxygenize * composite
- ./.github/workflows/style * composite
- ./.github/workflows/update-snapshots * composite
- actions/checkout v3 composite
- r-lib/actions/setup-r v2 composite
.github/workflows/check/action.yml
actions
- actions/upload-artifact main composite
- r-lib/actions/check-r-package v2 composite
.github/workflows/commit/action.yml
actions
.github/workflows/custom/after-install/action.yml
actions
- ankane/setup-mariadb v1 composite
- ankane/setup-mysql v1 composite
- ankane/setup-postgres v1 composite
- ankane/setup-sqlserver v1 composite
.github/workflows/custom/before-install/action.yml
actions
.github/workflows/dep-matrix/action.yml
actions
.github/workflows/dep-matrix-suggests/action.yml
actions
.github/workflows/fledge.yaml
actions
- ./.github/workflows/git-identity * composite
- ./.github/workflows/install * composite
- actions/checkout v2 composite
.github/workflows/get-extra/action.yml
actions
.github/workflows/ghcr.yaml
actions
- actions/checkout v3 composite
- docker/build-push-action f2a1d5e99d037542a71f64918e516c093c6f3fc4 composite
- docker/login-action 65b78e6e13532edd9afa3aa52ac7964289d1a9c1 composite
- docker/metadata-action 9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 composite
- docker/setup-buildx-action 4b4e9c3e2d4531116a6f8ba8e71fc6e2cb6e6c8c composite
.github/workflows/git-identity/action.yml
actions
.github/workflows/install/action.yml
actions
- ./.github/workflows/get-extra * composite
- r-lib/actions/setup-pandoc v2 composite
- r-lib/actions/setup-r v2 composite
- r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/lock.yaml
actions
- dessant/lock-threads v2 composite
.github/workflows/pkgdown-build/action.yml
actions
.github/workflows/pkgdown-deploy/action.yml
actions
- nick-fields/retry v2 composite
.github/workflows/pkgdown.yaml
actions
- ./.github/workflows/custom/after-install * composite
- ./.github/workflows/custom/before-install * composite
- ./.github/workflows/git-identity * composite
- ./.github/workflows/install * composite
- ./.github/workflows/pkgdown-build * composite
- ./.github/workflows/pkgdown-deploy * composite
- ./.github/workflows/rate-limit * composite
- actions/checkout v3 composite
.github/workflows/pr-commands.yaml
actions
- actions/checkout v3 composite
- r-lib/actions/pr-fetch master composite
- r-lib/actions/pr-push master composite
- r-lib/actions/setup-r master composite
.github/workflows/rate-limit/action.yml
actions
.github/workflows/revdep.yaml
actions
- actions/checkout v3 composite
- actions/upload-artifact main composite
- r-lib/actions/setup-pandoc v2 composite
.github/workflows/roxygenize/action.yml
actions
.github/workflows/style/action.yml
actions
- actions/cache v3 composite
.github/workflows/update-snapshots/action.yml
actions
- peter-evans/create-pull-request v4 composite
DESCRIPTION
cran
- R >= 3.3 depends
- DBI * imports
- backports * imports
- cli >= 2.2.0 imports
- dplyr >= 1.1.0 imports
- glue * imports
- igraph * imports
- lifecycle >= 1.0.3 imports
- magrittr * imports
- memoise * imports
- methods * imports
- pillar >= 1.7.0 imports
- purrr >= 1.0.0 imports
- rlang >= 1.0.2 imports
- tibble >= 3.0.0 imports
- tidyr >= 1.0.0 imports
- tidyselect >= 1.2.0 imports
- vctrs >= 0.3.2 imports
- DiagrammeR * suggests
- DiagrammeRsvg * suggests
- RMariaDB >= 1.2.2 suggests
- RPostgres * suggests
- RSQLite >= 2.2.8 suggests
- brio * suggests
- colourpicker * suggests
- covr * suggests
- crayon * suggests
- dbplyr >= 2.2.0 suggests
- digest * suggests
- duckdb >= 0.4.0 suggests
- fansi * suggests
- forcats * suggests
- htmltools * suggests
- htmlwidgets * suggests
- jsonlite * suggests
- keyring * suggests
- knitr * suggests
- labelled >= 2.12.0 suggests
- mockr * suggests
- nycflights13 * suggests
- odbc * suggests
- pixarfilms * suggests
- pool * suggests
- progress * suggests
- reactable * suggests
- rmarkdown * suggests
- rstudioapi * suggests
- shiny * suggests
- shinyAce * suggests
- shinydashboard * suggests
- testthat >= 3.1.2 suggests
- waldo * suggests
- withr * suggests
Dockerfile
docker
- ghcr.io/cynkra/rig-ubuntu main build
docker-compose.yml
docker
- mcr.microsoft.com/mssql/server 2022-RTM-ubuntu-20.04
- mysql latest
- postgres 14