2013-04-09 11 views
10

Sto usando devtools per creare il pacchetto R, e ci sono alcune funzioni che NON sono progettate per essere visibili agli utenti finali. Tuttavia, dal momento che queste funzioni comportano la chiamata di codici C da .Call, in modo che io debba scrivere @useDynLib sopra la funzione per la generazione automatica di file .Rd. In questo modo, quando costruisco il pacchetto, anche NON ho incluso lo @export per quelle funzioni, tuttavia appaiono nel documento della guida ... C'è un modo per annullare le funzioni anche se sono state documentate? Grazie!non mostrare la guida di una funzione nella creazione di pacchetti R da parte di roxygen2

+1

Hai solo bisogno di un 'dichiarazione useDynLib' per pacchetto. – hadley

+0

@hadley: grazie, ho corretto che ... ma funziona ancora senza '@ export' sono nel documento di aiuto, che desidero siano invisibili agli utenti finali. Qualche metodo per "sopprimere" la produzione di file .Rd? – alittleboy

+1

Non utilizzare i commenti sul flusso di ossigeno? – hadley

risposta

19

In base ai commenti di Hadley, utilizzare @keywords internal renderà la funzione invisibile agli utenti finali. I dettagli possono essere trovati here nelle pagine wiki di devtools.

8

Il wiki collegato nella risposta accettata non discute più @keywords internal (a partire da aprile 2016). Nel caso in cui è utile per qualcuno per vedere un esempio:

# multiplyBy3 
#' This is an example of an internal function called \code{multiplyBy3()} 
#' 
#' Sometimes you want internal functions as part of an R Package built with 
#' RStudio and roxygen2, but you don't want .Rd files created for them 
#' or to have them be visible in the help document following the build process 
#' 
#' @keywords internal 
#' 
#' @param base_num The number to multiply by three 
#' 
#' @import jsonlite 
#' 
#' @return Returns a numeric vector 
#' 
multiplyBy3 <- function(base_number) { 
    stopifnot(is.numeric(base_number)) 
    return(base_number * 3) 
} 

bit chiave: non comprendono @export e comprendono @keywords internal

+0

Questo è quello che stavo cercando da mezz'ora. Grazie @ arvi1000 – Veera

Problemi correlati