2011-09-21 8 views
15

W języku R bardzo przydatną funkcją jest to, że kod źródłowy funkcji jest dostępny jako obiekty w obszarze roboczym.Jak uzyskać dostęp do plików źródłowych pomocy/dokumentacji .rd w języku R?

Tak więc, jeśli chciałem znać kod źródłowy, na przykład grep(), mogę po prostu wpisać grep do konsoli i przeczytać kod.

Podobnie, mogę przeczytać dokumentację dla grep, wpisując ?grep do konsoli.

Pytanie: Jak uzyskać kod źródłowy do dokumentacji funkcji? Innymi słowy, gdzie znajdę pliki .rd?

Uważam studiując źródło dobrze napisanego kodu za doskonały sposób na poznanie idiomów. Teraz chcę się nauczyć, jak pisać dokumentację w bardzo konkretnych przypadkach. Nie mogłem znaleźć plików dokumentacji dla żadnej z podstawowych funkcji R w mojej instalacji R. Być może szukałem w niewłaściwym miejscu.

+0

jest plac stos specjalnie dedykowany do statystyki i analizy http://stats.stackexchange.com – robermorales

+0

Nigdy nie widziałem tego zrobić, ale byłoby miło, gdyby nie było sposobu, aby wyodrębnić pliki Rd z RDA akta. Jeśli chcesz mieć pliki .Rd, zawsze możesz pobrać pakiet (lub w przypadku pakietu podstawowego, źródło R). –

+3

@robermorales Tak, jestem tego świadomy, dziękuję. Ale to jest pytanie programistyczne, a nie pytanie o analizę statystyczną, więc nie byłoby tematu na temat CrossValidated. – Andrie

Odpowiedz

26

Wygląda na to, że możesz wyodrębnić źródła Rd z zainstalowanego R. Używam R-devel (2011-09-05 r56942).

Uzyskaj bazę danych Rd dla pakietu podstawowego.

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

Szukaj "grep.Rd" w nazwach RD DB, na przykład:

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" 

uzyskać tylko obiekt Rd 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{ 
... 
... 

Istnieją narzędzia do uzyskiwania składników z obiektami RD, dzięki czemu można dopracować do poszukiwania słów kluczowych lub nazwy, patrz przykłady w? Rd_db i spróbować.

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

+1 To świetnie, dziękuję. – Andrie