2016-03-04 31 views
8

Sto scrivendo un pacchetto R e sto documentando tutte le mie funzioni con roxygen2. Tuttavia, non voglio che tutte le funzioni appaiano nel manuale del pacchetto. Come è possibile specificare quali funzioni devono essere visualizzate nel manuale del pacchetto o quali no?Escludi la funzione dal manuale del pacchetto R

Sono consapevole che nominare una funzione con un punto iniziale, ad es. .f <- function() invece di f <- function() è una soluzione. Ci sono altre soluzioni?

+2

Perché documentarli se non li vuoi nel manuale? – nrussell

+0

Perché è utile sia per me che quando richiamo ciò che le funzioni fanno, sia per gli altri che potrebbero voler usare le funzioni "nascoste". Credo di aver visto esempi in altri pacchetti in cui non sono riuscito a trovare la pagina di aiuto della funzione scrivendo '? Function_name' nella console dopo aver importato il pacchetto, ma sono riuscito a vedere la pagina di aiuto se ho scritto'? Pkgname: :: function_name'. Potrei ricordare però sbagliato. –

+2

Ma le funzioni a cui si accede con ':::' non vengono esportate dai pacchetti, che in genere significa che l'autore non ha intenzione di utilizzare la funzione per i client. Generalmente tali funzioni non sono documentate - ad es. 'strumenti :::. is_ASCII'. Direi che se si incontra una funzione non esportata che * ha * ha documentazione, molto probabilmente è stata precedentemente una funzione esportata (e documentata) e rimossa dall'elenco delle esportazioni in una versione successiva. – nrussell

risposta

16

avevo perso il seguente dettaglio nel libro eccellente R packages da Hadley Wickham (nella sezione sulla documentazione oggetto):

@Keywords keyword1 keyword2 ... aggiunge parole chiave standardizzati. Le parole chiave sono opzionali, ma se presenti, devono essere prese da un elenco predefinito trovato in file.path (R.home ("doc"), "KEYWORDS").

In genere, le parole chiave non sono così utili tranne per @keywords interne. L'utilizzo della parola chiave interna rimuove la funzione dall'indice del pacchetto e disabilita alcuni dei test automatici. È comune utilizzare @keywords internal per funzioni che interessano altri sviluppatori che estendono il pacchetto, ma non la maggior parte degli utenti.

Così aggiungendo @keywords internal alla funzione roxygen2 risultati documentazione in funzione non figurano nel fascicolo manuale/index, mentre continua a fare la pagina di aiuto sia accessibile dopo aver caricato il pacchetto.

+0

+1 per individuare "@keywords internal." Non voglio annoiare le persone con le mie funzioni di supporto interne, grazie! – keberwein