Reputation: 1435
I created a test-package called letstrythis
to illusttrate the problem. The test-package is very simple and consits of the following files:
DESCRIPTION
Package: letstrythis
Title: What the Package Does (one line, title case)
Version: 0.0.0.9000
Authors@R: person("Mike", "Smith", email = "[email protected]", role = c("aut", "cre"))
Description: letstrythis is great.
Depends:
R (>= 3.2.3)
License: GPL
LazyData: true
Maintainer: 'Mike Smith' <[email protected]>
RoxygenNote: 5.0.1
NAMESPACE
# Generated by roxygen2: do not edit by hand
export(add_numbers)
R/add-numbers.R
#' test function
#'
#' @param x numeric
#' @param y numeric
#' @return numeric
#' @export
#'
#' @examples
#' add_numbers(1, 1)
#' add_numbers(2, 3)
add_numbers <- function(x, y) {
x + y
}
and
man/add_numbers.Rd
which is automatically created by roxygen2.
Every time I check my package with devtools::check()
I get the following error message:
* checking examples ... ERROR
Running examples in 'letstrythis-Ex.R' failed
The error occurred in:
R version 3.2.3 (2015-12-10) -- "Wooden Christmas-Tree"
Copyright (C) 2015 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
Natural language support but running in an English locale
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> pkgname <- "letstrythis"
> source(file.path(R.home("share"), "R", "examples-header.R"))
> options(warn = 1)
> options(pager = "console")
> base::assign(".ExTimings", "letstrythis-Ex.timings", pos = 'CheckExEnv')
> base::cat("name\tuser\tsystem\telapsed\n", file=base::get(".ExTimings", pos = 'CheckExEnv'))
> base::assign(".format_ptime",
+ function(x) {
+ if(!is.na(x[4L])) x[1L] <- x[1L] + x[4L]
+ if(!is.na(x[5L])) x[2L] <- x[2L] + x[5L]
+ options(OutDec = '.')
+ format(x[1L:3L], digits = 7L)
+ },
+ pos = 'CheckExEnv')
>
> ### * </HEADER>
> library('letstrythis')
Error in library("letstrythis") :
there is no package called 'letstrythis'
Execution halted
* checking PDF version of manual ... OK
* DONE
Status: 1 ERROR
See
'Z:/R_codes/letstrythis.Rcheck/00check.log'
for details.
Error: Command failed (1)
Execution halted
Exited with status 1.
Apperently the package cannot be loaded with library()
everytime the example in R/add-numbers.R
is executed.
Upvotes: 3
Views: 1024
Reputation: 316
Setting the library location in the call to library()
helps. This might not be the ideal solution when writing general examples that will be published. For me, it was helpful when running tests during devtools::check()
. I had the same issues when working on a network drive, i.e. packages specified in tests/testthat.R
could not be loaded via library()
. Instead of copying the whole package under development to a local drive I used the command
library(package_under_dev, lib.loc = "..")
in the tests/testthat.R
file. The command will load the package from the root of the current working directory. This is helpful during devtools::check()
, because it will make R use the clean package located in the temporary package_under_dev.Rcheck
folder which is created during the checking routine.
Alternatively, one could also add the root folder to the search paths via
.libPaths(c("..", .libPaths()))
and then one doesn't need to specify it in the call to library()
. Maybe this would help in case of check()
ing the examples.
Playing around with R_LIBS_USER
, as suggested here, did not work for me.
Upvotes: 2