Learn R Programming


output: github_document


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:            /private/var/folders/9p/3xvkrqpn37nb1hfwnznx05pc0000gn/T/Rtmpl2BLaS 
#> Number of items: 7 
#> Total size:      535 B
rp$info("areas")
#> ID:           areas
#> Description:  These are the areas
#> Tags:         
#> Dimensions:   10
#> Timestamp:    2026-06-08 00:35:08.349265
#> Size on disk: 103 B
#> Provenance:   
#> Attached to:  -
#> Stored in:    /private/var/folders/9p/3xvkrqpn37nb1hfwnznx05pc0000gn/T/Rtmpl2BLaS/a/areas
#> MD5 checksum: 51059bc2427b4d738b45e7cd6a932ff7
#> 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

releases, usually in sync with lastest CRAN version.

  • Dev: minor releases

passing automatic checks.

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

49

Version

2.1.7

License

GPL-3

Maintainer

Francesco Napolitano

Last Published

August 4th, 2026

Functions in repo (2.1.7)

repo_pull

Download item remote content
repo_project

Defines and put-s a project item.
repo_stashclear

Remove all stashed data
repo_sys

Run system call on an item
repo_untag

Remove tags from an item.
repo_tags

List all tags
repo_stash

Quickly store temporary data
repo_set

Edit an existing item.
repo_tag

Add tags to an item.
repo_copy

Copy items to another repository
repo_attach

Create a new item from an existing file.
repo_chunk

Shows code chunk associated with an item
repo_bulkedit

Edit all items info using a text file.
repo_dependencies

Build and/or plots a dependency graph
repo-package

Repo: The Data-centered Data Flow Manager
repo_cpanel

Open a visual interface to the repo
repo_build

Builds a resource using the associated code chunk
repo_check

Check repository integrity.
repo_entries

Low-level list of item entries.
repo_depends

Returns item's dependencies
repo_has

Check whether a repository has an item
repo_get

Retrieve an item from the repo.
repo_info

Provides detailed information about an item.
repo_handlers

Provides simplified access to repository items.
repo_attr

Get item attribute.
repo_load

Loads an item to current workspace
repo_lazydo

Run expression with cache.
repo_export

Export repo items to RDS file.
repo_rm

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

Match items by matching any field
repo_put

Create a new item in the repository.
repo_options

Set repository-wide options
repo_related

Finds all items related to a set of item
repo_open

Open an existing repository or create a new one.
repo_pies

Plots a pie chart of repository contents
repo_print

Show a summary of the repository contents.
repo_root

Show path to repo root