web-dev-qa-db-fra.com

Comment ne pas utiliser un exemple en utilisant roxygen2?

J'écris actuellement une fonction geocoding qui repose sur une clé Bing Maps. Évidemment, je préfère ne pas publier le mien, et les exemples échouent sans un.

Comment puis-je inclure un exemple pour que les utilisateurs s'exécutent manuellement, sans l'avoir exécuté pendant R CMD check?

66
Ari B. Friedman

Utilisez \dontrun{}

#'@examples
#'\dontrun{
#'geocode("3817 Spruce St, Philadelphia, PA 19104")
#'geocode("Philadelphia, PA")
#'dat <- data.frame(value=runif(3),address=c("3817 Spruce St, Philadelphia, PA 19104","Philadelphia, PA","Neverneverland"))
#'geocode(dat)
#'}
108
GSee

Vous pouvez utiliser \donttest{} pour votre exemple. L'extrait sera fourni dans votre documentation, mais ne sera pas testé avec la vérification R CMD.

Pour plus d'informations -> ?example

#' @example
\donttest{
    2^2
    }

Ce 2 ^ 2 ne sera pas exécuté lorsque vous exécuterez devtools::check()

Vérifiez vous-même avant de juger. :)

11
samkart

Pour ceux qui utilisent @example path/to/example.R au lieu de la balise @examples, vous pouvez utiliser l'environnement \dontrun directement dans le fichier example.R. Par exemple

# example.R
\dontrun{
# this is a long running example
for(i in seq(1, 1e5)) { lm(mpg ~ wt, data = mtcars) }
}

# some other shorter example
2 + 2
4
Peter

Ari, j'utilise aussi roxygen2 (version 4.1.0). Ce qui suit est la fin de mon marquage roxygen2 dans ma définition de fonction (gctemplate) jusqu'au début de la partie réelle.

#' @examples
#' ## List all G-causalities in a VAR system of 5 variables that will be searched in the pattern of 1 
#' ## causer (like-independent) variable and 2 like-dependents conditional on 5-(1+2)=2 of the remaining 
#' ## variable(s) in the system. Variables are assigned to numbers 1 to nvars. 
#' ## "1 2 5 3 4" in the resulting line of gctemplate is to indicate the 
#' ## (conditonal, partial, etc.) G-causality from variable 1 to variables 2 and 5 
#' ## conditonal on variables 3 and 4.
#' # gctemplate(5,1,2)
#' ## The number of all G-causalities to be searched in the above pattern.
#' #dim(gctemplate(5,1,2))[[1]]
#' @importFrom combinat combn
#' @export
gctemplate <- function(nvars, ncausers, ndependents){
...

Je connais la méthode de GSee.
Dans ma technique, l’exemple numérique et le texte expliquant l’exemple numérique sont tous deux des commentaires. J'utilise l'indentation pour faire la différence entre les deux; Notez qu'il y a 1 forte et 2 dièses respectivement après "# '". J'utilise toujours la technique "# '##/#' #" ci-dessus dans mes paquets. L'utilisateur est laissé pour copier-coller chaque fois qu'il/elle veut tester la fonction. Cette technique est - selon moi - plus parallèle au bombardement classique par commentaires de la philosophie de codage logiciel.

0
Erdogan CEVHER