2011-09-21 9 views
15

En R, una característica muy clara es que el código fuente de funciones es accesible como objetos en el área de trabajo.¿Cómo acceder a los archivos fuente de ayuda/documentación .rd en R?

Por lo tanto, si quería saber el código fuente de, por ejemplo, grep(), simplemente puedo escribir grep en la consola y leer el código.

De manera similar, puedo leer la documentación de grep escribiendo ?grep en la consola.

Pregunta: ¿Cómo puedo obtener el código fuente para la documentación de una función? En otras palabras, ¿dónde encuentro los archivos .rd?

Me parece que estudiar la fuente del código bien escrito es una excelente manera de aprender los modismos. Ahora quiero estudiar cómo escribir documentación para algunos casos muy específicos. No he podido encontrar los archivos de documentación para ninguna de las funciones R base en mi instalación R. Quizás he estado buscando en el lugar equivocado.

+0

hay un sitio de pila especialmente dedicado a estadísticas y análisis http://stats.stackexchange.com – robermorales

+0

nunca he visto este hecho, pero sería agradable si había una manera de extraer los archivos de Rd RDA archivos. Si desea tener archivos .Rd, siempre puede descargar un paquete (o en el caso del paquete base, fuente R). –

+3

@robermorales Sí, estoy al tanto de eso, gracias. Pero esta es una pregunta de programación, no una pregunta de análisis estadístico, por lo que estaría fuera de tema en CrossValidated. – Andrie

Respuesta

26

Parece que puede extraer las fuentes Rd de una R. instalada. Estoy usando R-devel (2011-09-05 r56942).

Obtenga la base de datos de Rd para el paquete base.

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

Búsqueda de "grep.Rd" en los nombres de los Rd DB, por ejemplo:

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" 

Obtener sólo el objeto Rd para 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{ 
... 
... 

Hay herramientas para conseguir los componentes de los objetos Rd, por lo que se puede refinar la búsqueda de palabras clave o nombre, ver ejemplos en? Rd_db y probar este.

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

+1 Esto es genial, gracias. – Andrie

Cuestiones relacionadas