Как получить доступ к справке / документации.rd исходных файлов в R?

В R одна очень полезная особенность заключается в том, что исходный код функций доступен как объекты в рабочей области.

Таким образом, если бы я хотел знать исходный код, например, grep() Я могу просто напечатать grep в консоль и прочитайте код.

Точно так же я могу прочитать документацию для grep набрав ?grep в консоль.

Вопрос: Как я могу получить исходный код для документации функции? Другими словами, где я могу найти.rd файлы?

Я нахожу изучение источника хорошо написанного кода отличным способом изучения идиом. Теперь я хочу научиться писать документацию для некоторых очень специфических случаев. Мне не удалось найти файлы документации для каких-либо базовых функций R в моей установке R. Возможно, я искал не в том месте.

1 ответ

Решение

Кажется, вы можете извлечь источники Rd из установленного R. Я использую R-devel (2011-09-05 r56942).

Получить базу данных Rd для базового пакета.

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

Найдите "grep.Rd" в именах Rd DB, например:

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" 

Получить только 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{
...
...

Существуют инструменты для получения компонентов из объектов Rd, поэтому вы можете уточнить поиск по ключевым словам или имени, посмотрите примеры в?Rd_db и попробуйте это.

lapply(db, tools:::.Rd_get_metadata, "name")
Другие вопросы по тегам