https://github.com/ropensci-archive/Rclean
:warning: ARCHIVED :warning: Isolate essential code to re-produce specific results.
https://github.com/ropensci-archive/Rclean
Last synced: 4 months ago
JSON representation
:warning: ARCHIVED :warning: Isolate essential code to re-produce specific results.
- Host: GitHub
- URL: https://github.com/ropensci-archive/Rclean
- Owner: ropensci-archive
- License: gpl-3.0
- Archived: true
- Created: 2017-09-06T18:45:59.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-06T12:36:38.000Z (over 2 years ago)
- Last Synced: 2024-08-13T07:16:28.737Z (8 months ago)
- Language: TeX
- Homepage:
- Size: 9.18 MB
- Stars: 96
- Watchers: 9
- Forks: 13
- Open Issues: 0
-
Metadata Files:
- Readme: README-not.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- jimsghstars - ropensci-archive/Rclean - :warning: ARCHIVED :warning: Isolate essential code to re-produce specific results. (TeX)
README
[](https://travis-ci.org/ROpenSci/Rclean)
[](https://codecov.io/github/ROpenSci/Rclean?branch=master)[](https://cran.r-project.org/package=Rclean)


[](http://www.rdocumentation.org/packages/Rclean)[](http://www.repostatus.org/#active)
[](https://www.tidyverse.org/lifecycle/#maturing)[](https://github.com/ropensci/software-review/issues/327)
[](http://joss.theoj.org/papers/334d80d5508056dc6e7e17c6fd3ed5a6)[](https://zenodo.org/badge/latestdoi/102645585)
Quick Start Guide
=================- [Rclean](https://github.com/MKLau/Rclean) was created to help
scientists more *easily* write “cleaner” code.
- Written with research scientists that are results oriented in mind,
the package’s primary function provides a simple way to isolate the
minimal code you need to produce a specific result, such as a
statistical table or a figure. By focusing on specific results (aka.
variables), large and/or complicated analytical scripts can be
paired down to the essentials and easily re-factored to be more
robust and easily shared.
- Below, you'll find a brief introduction to get you started using
the package. For more details, see `vignette("Rclean")`.Install
=======You can install the most up to date version easily with
[devtools](https://github.com/hadley/devtools):install.packages("devtools")
devtools::install_github("MKLau/Rclean")You will also likely need to install the
[RGraphViz](bioconductor.org/packages/release/bioc/html/Rgraphviz.html):install.packages("BiocManager")
BiocManager::install("Rgraphviz")Once installed, per usual R practice just load the *Rclean* package
with:library(Rclean)
Usage
=====*Rclean* usage is simple. Have a script with code you want to clean
saved to disk. Then, just run the `clean` function with the path to the
script as the input. Here, we can use an example script that is included
with the package:script <- system.file("example", "simple_script.R", package = "Rclean")
Here's a quick look at the code:
readLines(script)
#> [1] "## Make a data frame"
#> [2] "mat <- matrix(rnorm(400), nrow = 100)"
#> [3] "dat <- as.data.frame(mat)"
#> [4] "dat[, \"V2\"] <- dat[, \"V2\"] + runif(nrow(dat))"
#> [5] "dat[, \"V5\"] <- gl(10, 10)"
#> [6] "## Conduct some analyses"
#> [7] "fit12 <- lm(V1 ~ V2, data = dat)"
#> [8] "fit13 <- lm(V1 ~ V3, data = dat)"
#> [9] "fit14 <- lm(V1 ~ V4, data = dat)"
#> [10] "fit15.aov <- aov(V1 ~ V2 + V5, data = dat)"
#> [11] "## Summarize analyses"
#> [12] "summary(fit15.aov)"
#> [13] "tab.12 <- summary(fit12)"
#> [14] "tab.13 <- summary(fit13)"
#> [15] "tab.14 <- summary(fit14)"
#> [16] "tab.15 <- append(fit15.aov, tab.14)"
#> [17] "## Conduct a calculation"
#> [18] "dat <- 25 + 2"
#> [19] "dat[2] <- 10"
#> [20] "out <- dat * 2"You can get a list of the variables found in an object with `get_vars`.
get_vars(script)
#> [1] "mat" "dat" "fit12" "fit13" "fit14" "fit15.aov"
#> [7] "tab.12" "tab.13" "tab.14" "tab.15" "out"Sometimes for more complicated scripts, it can be helpful to see a
network graph showing the interdependencies of variables. `code_graph`
will produce a network diagram showing which lines of code produce or
use which variables:code_graph(script)
Now, we can pick the result we want to focus on for cleaning:
clean(script, "tab.15")
#> mat <- matrix(rnorm(400), nrow = 100)
#> dat <- as.data.frame(mat)
#> dat[, "V2"] <- dat[, "V2"] + runif(nrow(dat))
#> dat[, "V5"] <- gl(10, 10)
#> fit14 <- lm(V1 ~ V4, data = dat)
#> fit15.aov <- aov(V1 ~ V2 + V5, data = dat)
#> tab.14 <- summary(fit14)
#> tab.15 <- append(fit15.aov, tab.14)
#> dat <- 25 + 2
#> dat[2] <- 10We can also select several variables at the same time:
my.vars <- c("tab.12", "tab.15")
clean(script, my.vars)
#> mat <- matrix(rnorm(400), nrow = 100)
#> dat <- as.data.frame(mat)
#> dat[, "V2"] <- dat[, "V2"] + runif(nrow(dat))
#> dat[, "V5"] <- gl(10, 10)
#> fit12 <- lm(V1 ~ V2, data = dat)
#> fit14 <- lm(V1 ~ V4, data = dat)
#> fit15.aov <- aov(V1 ~ V2 + V5, data = dat)
#> tab.12 <- summary(fit12)
#> tab.14 <- summary(fit14)
#> tab.15 <- append(fit15.aov, tab.14)
#> dat <- 25 + 2
#> dat[2] <- 10While just taking a look at the simplified code can be very helpful, you
can also save the code for later use or sharing (e.g. creating a
reproducible example for getting help) with `keep`:my.code <- clean(script, my.vars)
keep(my.code, file = "results_tables.R")If you would like to copy your code to your clipboard, you can do that
by not specifying a file path. You can now paste the simplified as
needed.keep(my.code)
Contributing
============This is an open-source project. If you would like to contribute to the
project, please check out [CONTRIBUTING.md](CONTRIBUTING.md).Please note that the 'Rclean' project is released with a [Contributor
Code of Conduct](CODE_OF_CONDUCT.md). By contributing to this project,
you agree to abide by its terms.