ahistory extracts artifact's history and creates a data frame with history of calls and md5hashes of partial results. The overloaded print.ahistory function prints this history in a concise way. The overloaded print.ahistoryKable function prints this history in the same way as kable. When alink=TRUE one can create history table/kable with hooks to partial results (artifacts) as in the alink function.

ahistory(artifact = NULL, md5hash = NULL,
  repoDir = aoptions("repoDir"), format = "regular", alink = FALSE,
  ...)

Arguments

artifact

An artifact which history is supposed to be reconstructed. It will be converted into md5hash.

md5hash

If artifact is not specified then md5hash is used.

repoDir

A character denoting an existing directory in which an artifact will be saved.

format

A character denoting whether to print history in either a "regular" (default) way or like in a "kable" function. See Notes.

alink

Whether to provide hooks to objects like in alink. See examples.

...

Further parameters passed to alink function. Used when format = "kable" and alink = TRUE.

Value

A data frame with two columns - names of calls and md5hashes of partial results.

Details

All artifacts created with %a% operator are archivised with detailed information about it's source (both call and md5hash of the input). The function ahistory reads all artifacts that precede artifact and create a description of the input flow. The generic print.ahistory function plots the history in a human readable way.

Note

There are provided functions (print.ahistory and print.ahistoryKable) to print the artifact's history. History can be printed either in a regular way which is friendy for the console output or in a kable format which prints the artifact's history in a way kable function would. This is convenient when one prints history in .Rmd files using rmarkdown.

Moreover when user passes format = 'kable' and alink = TRUE then one can use links for remote Repository. Then mdhashes are taken from Local Repository, so user has to specify repo, user and repoDir even though they are set globally, because repo is a substring of repoDir and during evalutation of ... R treats repo as repoDir.

Contact

Bug reports and feature requests can be sent to https://github.com/pbiecek/archivist/issues

Demonstration

This function is well explained on this http://r-bloggers.com/r-hero-saves-backup-city-with-archivist-and-github blog post.

References

Biecek P and Kosinski M (2017). "archivist: An R Package for Managing, Recording and Restoring Data Analysis Results." _Journal of Statistical Software_, *82*(11), pp. 1-28. doi: 10.18637/jss.v082.i11 (URL: http://doi.org/10.18637/jss.v082.i11). URL https://github.com/pbiecek/archivist

See also

Examples

createLocalRepo("ahistory_check", default = TRUE) library(dplyr)
#> #> Attaching package: ‘dplyr’
#> The following object is masked from ‘package:testthat’: #> #> matches
#> The following objects are masked from ‘package:stats’: #> #> filter, lag
#> The following objects are masked from ‘package:base’: #> #> intersect, setdiff, setequal, union
iris %a% filter(Sepal.Length < 6) %a% lm(Petal.Length~Species, data=.) %a% summary() -> artifact ahistory(artifact)
#> [f48b575a9bb33be617c0f44c9a32203d]
ahistory(artifact, format = "kable")
#> |call |md5hash | #> |:----|:--------------------------------| #> | |f48b575a9bb33be617c0f44c9a32203d |
print(ahistory(artifact, format = "kable"), format = "latex")
#> #> \begin{tabular}{l|l} #> \hline #> call & md5hash\\ #> \hline #> & f48b575a9bb33be617c0f44c9a32203d\\ #> \hline #> \end{tabular}
ahistory(artifact, format = "kable", alink = TRUE, repoDir = "ahistory_check", repo = "repo", user = "user")
#> |call |md5hash | #> |:----|:-----------------------------------------------------------------------------------------------------------------------------------| #> | |[f48b575a9bb33be617c0f44c9a32203d](https://raw.githubusercontent.com/user/repo/master/gallery/f48b575a9bb33be617c0f44c9a32203d.rda) |
repoDir <- file.path(getwd(), "ahistory_check") deleteLocalRepo(repoDir, deleteRoot = TRUE) aoptions('repoDir', NULL, unset = TRUE)
#> NULL