Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ijlyttle/projthis
Lightweight Framework for Analysis Development
https://github.com/ijlyttle/projthis
Last synced: about 2 months ago
JSON representation
Lightweight Framework for Analysis Development
- Host: GitHub
- URL: https://github.com/ijlyttle/projthis
- Owner: ijlyttle
- License: other
- Created: 2020-07-30T21:23:35.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-08-14T03:18:45.000Z (over 2 years ago)
- Last Synced: 2024-10-12T06:46:17.211Z (2 months ago)
- Language: R
- Homepage: https://ijlyttle.github.io/projthis/
- Size: 303 KB
- Stars: 12
- Watchers: 6
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.Rmd
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- jimsghstars - ijlyttle/projthis - Lightweight Framework for Analysis Development (R)
README
---
output: github_document
---```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```# projthis
[![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/#experimental) [![R build status](https://github.com/ijlyttle/projthis/workflows/R-CMD-check/badge.svg)](https://github.com/ijlyttle/projthis/actions) [![Codecov test coverage](https://codecov.io/gh/ijlyttle/projthis/branch/master/graph/badge.svg)](https://codecov.io/gh/ijlyttle/projthis?branch=master)
[![R-CMD-check](https://github.com/ijlyttle/projthis/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/ijlyttle/projthis/actions/workflows/R-CMD-check.yaml)The projthis package offers a framework for analysis-based project workflows.
You can use it to:- manage the dependencies among files in your workflows; projthis provides tools to support a directory structure and a naming convention.
- manage your project's package-dependencies; projthis helps you use a `DESCRIPTION` file.
- automate the rendering of your workflow using GitHub Actions; projthis provides a template for an Action.
The [getting-started article](https://ijlyttle.github.io/projthis/articles/projthis.html) provides a bottom-up treatment of what this package does; for a top-down overview, see the [design-philosophy article](https://ijlyttle.github.io/projthis/articles/design-phlosophy.html).
To see the projthis framework in action, here's a [repository that puts it to use](https://github.com/ijlyttle/covidStates).
## Installation
You can install the GitHub version of projthis with:
``` r
# install.packages("remotes")
remotes::install_github("ijlyttle/projthis")
```## Acknowledgments
There is precious little original to this package, which is a good thing.
This package rests heavily on the foundation laid by RStudio's [**usethis**](https://usethis.r-lib.org/) package, and also relies on their [**renv**](https://rstudio.github.io/renv/), [**desc**](https://github.com/r-lib/desc), [**remotes**](https://remotes.r-lib.org/), and [**actions**](https://github.com/r-lib/actions) packages.
Of course, the gold-standard for managing dependencies within a workflow is William Landau's [**drake**](https://docs.ropensci.org/drake/), now superseded by [**targets**](https://docs.ropensci.org/targets/).
For managing package-dependencies, you may also be interested in ThinkR's [**attachment**](https://thinkr-open.github.io/attachment/) package.The idea to put some structure on analysis development in R is not new:
- I learned the term "analysis development" from Hilary Parker, who has published a [pre-print](https://peerj.com/preprints/3210/), and given an [rstudio::conf() presentation](https://rstudio.com/resources/rstudioconf-2017/opinionated-analysis-development/) on the topic.
- Jenny Bryan has long been an advocate for more-humane organization of R workflows.
Perhaps her most famous "hot take" is included in this [blog post](https://www.tidyverse.org/blog/2017/12/workflow-vs-script/), which has served as a foundation for this work.- Sharla Gelfand has discussed her implementation in a [blog post](https://sharla.party/post/usethis-for-reporting/) and an [rstudio::conf() presentation](https://rstudio.com/resources/rstudioconf-2020/don-t-repeat-yourself-talk-to-yourself-repeated-reporting-in-the-r-universe/).
- As well, Emily Reiderer discussed her approach in a [blog post](https://emilyriederer.netlify.app/post/rmarkdown-driven-development/) and an [rstudio::conf() presentation](https://rstudio.com/resources/rstudioconf-2020/rmarkdown-driven-development/).
- Steph Locke and Maëlle Salmon offer the [**starters**](https://itsalocke.com/starters/) package, to help you set up R projects for a variety of use cases.
## Code of Conduct
Please note that the projthis project is released with a [Contributor Code of Conduct](https://contributor-covenant.org/version/2/0/CODE_OF_CONDUCT.html).
By contributing to this project, you agree to abide by its terms.