2011-09-21 14 views
15

In R, una caratteristica molto accurata è che il codice sorgente delle funzioni è accessibile come oggetti nell'area di lavoro.Come accedere alla documentazione di aiuto/documentazione .rd in R?

Quindi, se volessi sapere il codice sorgente di, ad esempio, grep(), posso semplicemente digitare grep nella console e leggere il codice.

Analogamente, posso leggere la documentazione per grep digitando ?grep nella console.

Domanda: Come posso ottenere il codice sorgente per la documentazione di una funzione? In altre parole, dove trovo i file .rd?

Trovo che studiare la fonte del codice ben scritto sia un modo eccellente per imparare gli idiomi. Ora voglio studiare come scrivere la documentazione per alcuni casi molto specifici. Non sono stato in grado di trovare i file di documentazione per nessuna delle funzioni di base R nella mia installazione R. Forse ho cercato nel posto sbagliato.

+0

c'è un sito appositamente dedicato pila di statistiche e analisi http://stats.stackexchange.com – robermorales

+0

non ho mai visto fare, ma sarebbe bello se ci fosse un modo per estrarre i file da Rd rda File. Se vuoi avere i file .Rd, puoi sempre scaricare un pacchetto (o nel caso del pacchetto base, sorgente R). –

+3

@robermorales Sì, ne sono consapevole, grazie. Ma questa è una domanda di programmazione, non una domanda di analisi statistica, quindi sarebbe fuori tema su CrossValidated. – Andrie

risposta

26

Sembra che sia possibile estrarre i sorgenti Rd da un R. installato. Sto usando R-devel (2011-09-05 r56942).

Ottieni il database di Rd per il pacchetto base.

library(tools) 
db <- Rd_db("base") 

Cerca "grep.Rd" nei nomi del Rd DB, ad esempio:

grep("grep.Rd", names(db), value = TRUE) 
[1] "d:/murdoch/recent/R64/src/library/base/man/agrep.Rd" 
[2] "d:/murdoch/recent/R64/src/library/base/man/grep.Rd" 

ottenere solo l'oggetto Rd per grep.

db[grep("/grep.Rd", names(db))] 
$`d:/murdoch/recent/R64/src/library/base/man/grep.Rd` 
\title{Pattern Matching and Replacement} 
\name{grep} 
\alias{grep} 
\alias{grepl} 
\alias{sub} 
\alias{gsub} 
\alias{regexpr} 
\alias{gregexpr} 
\alias{regexec} 
\keyword{character} 
\keyword{utilities} 
\description{ 
\code{grep}, \code{grepl}, \code{regexpr} and \code{gregexpr} search 
for matches to argument \code{pattern} within each element of a 
character vector: they differ in the format of and amount of detail in 
the results. 

\code{sub} and \code{gsub} perform replacement of the first and all 
matches respectively. 
}\usage{ 
... 
... 

ci sono strumenti per ottenere i componenti dagli oggetti Rd, in modo da poter affinare la ricerca per parole chiave o nome, vedere esempi in? Rd_db e provare questo.

lapply(db, tools:::.Rd_get_metadata, "name") 
+0

+1 Questo è fantastico, grazie. – Andrie

Problemi correlati