Learn R Programming

Master: Dev:

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()

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")

Copy Link

Version

Install

install.packages('repo')

Monthly Downloads

296

Version

2.1.5

License

GPL-3

Maintainer

Francesco Napolitano

Last Published

February 8th, 2020

Functions in repo (2.1.5)

repo_build

Builds a resource using the associated code chunk
repo_load

Loads an item to current workspace
repo_related

Finds all items related to a set of item
repo_lazydo

Run expression with cache.
repo_put

Create a new item in the repository.
repo_open

Open an existing repository or create a new one.
repo_options

Set repository-wide options
repo_export

Export repo items to RDS file.
repo_find

Match items by matching any field
repo_has

Check whether a repository has an item
repo_info

Provides detailed information about an item.
repo_untag

Remove tags from an item.
repo_rm

Remove item from the repo (and the disk).
repo_stashclear

Remove all stashed data
repo_root

Show path to repo root
repo_depends

Returns item's dependencies
repo_sys

Run system call on an item
repo_print

Show a summary of the repository contents.
repo_handlers

Provides simplified access to repository items.
repo_get

Retrieve an item from the repo.
repo_pies

Plots a pie chart of repository contents
repo_entries

Low-level list of item entries.
repo_project

Defines and put-s a project item.
repo_pull

Download item remote content
repo_tags

List all tags
repo_tag

Add tags to an item.
repo_set

Edit an existing item.
repo_stash

Quickly store temporary data
repo_attr

Get item attribute.
repo_dependencies

Build and/or plots a dependency graph
repo_bulkedit

Edit all items info using a text file.
repo-package

Repo: The Data-centered Data Flow Manager
repo_copy

Copy items to another repository
repo_attach

Create a new item from an existing file.
repo_check

Check repository integrity.
repo_chunk

Shows code chunk associated with an item
repo_cpanel

Open a visual interface to the repo