MyNixOS website logo
Description

A Data-Centered Data Flow Manager.

A data manager meant to avoid manual storage/retrieval of data to/from the file system. It builds one (or more) centralized repository where R objects are stored with rich annotations, including corresponding code chunks, and easily searched and retrieved. See Napolitano (2017) <doi:10.1037/a0028240> for further information.

Master: Travis-CI BuildStatusDev: Travis-CI BuildStatus

Repo

Repo is a data-centered data flow manager. It allows to store R data files in a central local repository, together with tags, annotations, provenance and dependence information. Any saved object can then be easily located and loaded through the repo interface.

A paper about Repo has been published in BMC Bioinformatics.

Latest news are found in the NEWS.md file of the “Untested” branch.

Minimal example

Creating a dummy repository under the R temporary folder (skipping confirmation):

library(repo)
rp <- repo_open(tempdir(), force=T)
#> Repo created.

Storing data. In this case, just item values and names are specified:

God <- Inf
rp$put(God)          ## item name inferred from variable name
rp$put(0, "user")    ## item name specified

More data with specified dependencies:

rp$put(pi, "The Pi costant", depends="God")
rp$put(1:10, "r", depends="user")

Loading items from the repository on the fly using names:

diam <- 2 * rp$get("r")
circum <- 2 * rp$get("The Pi costant") * rp$get("r")
area <- rp$get("The Pi costant") * rp$get("r") ^ 2

Storing more data with verbose descriptions:

rp$put(diam, "diameters", "These are the diameters", depends = "r")
rp$put(circum, "circumferences", "These are the circumferences",
       depends = c("The Pi costant", "r"))
rp$put(area, "areas", "These are the areas",
       depends = c("The Pi costant", "r"))

Showing repository contents:

print(rp)
#>              ID Dims  Size
#>             God    1  51 B
#>            user    1  49 B
#>  The Pi costant    1  55 B
#>               r   10  99 B
#>       diameters   10  75 B
#>  circumferences   10 103 B
#>           areas   10 103 B
rp$info()
#> Root:            /tmp/RtmppFMwnb 
#> Number of items: 7 
#> Total size:      535 B
rp$info("areas")
#> ID:           areas
#> Description:  These are the areas
#> Tags:         
#> Dimensions:   10
#> Timestamp:    2019-12-22 17:01:45
#> Size on disk: 103 B
#> Provenance:   
#> Attached to:  -
#> Stored in:    /tmp/RtmppFMwnb/a/areas
#> MD5 checksum: 56ad410055fedb0cae012d813a130291
#> URL:          -

Visualizing dependencies:

rp$dependencies()

plot of chunk depgraph

Manual acces to stored data:

fpath <- rp$attr("r", "path")
readRDS(fpath)
#>  [1]  1  2  3  4  5  6  7  8  9 10

Development branches

  • Master: stable major releases, usually in sync with the latest CRAN version.

  • Dev: minor releases passing automatic checks.

  • Untested: in progress versions and prototype code, not necessarily working.

Manuals

Besides inline help, two documents are available as introductory material:

Download and Installation

Repo is on CRAN and can be installed from within R as follows:

install.packages("repo")

Latest stable release can be downloaded from Github at https://github.com/franapoli/repo. Repo can then be installed from the downloaded sources as follows:

install.packages("path-to-downloaded-source", repos=NULL)

devtools users can install Repo directly from github as follows:

install_github("franapoli/repo", ref="dev")
Metadata

Version

2.1.5

License

Unknown

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows