2011-09-21 30 views
15

Trong R, một tính năng rất gọn gàng là mã nguồn của các hàm có thể truy cập như các đối tượng trong vùng làm việc.Cách truy cập tài liệu trợ giúp/tài liệu .rd nguồn trong R?

Vì vậy, nếu tôi muốn biết mã nguồn của, ví dụ: grep() Tôi có thể chỉ cần nhập grep vào bảng điều khiển và đọc mã.

Tương tự, tôi có thể đọc tài liệu cho grep bằng cách nhập ?grep vào bảng điều khiển.

Câu hỏi: Làm cách nào để lấy mã nguồn cho tài liệu của hàm? Nói cách khác, tôi tìm tệp .rd ở đâu?

Tôi tìm hiểu nguồn gốc của mã được viết tốt một cách tuyệt vời để học các thành ngữ. Bây giờ tôi muốn nghiên cứu cách viết tài liệu cho một số trường hợp rất cụ thể. Tôi đã không thể tìm thấy các tập tin tài liệu cho bất kỳ chức năng cơ bản R trong cài đặt R của tôi. Có lẽ tôi đã tìm kiếm ở nơi sai.

+0

có một trang web ngăn xếp đặc biệt dành riêng cho số liệu thống kê và phân tích http://stats.stackexchange.com – robermorales

+0

Tôi chưa bao giờ thấy điều này được thực hiện, nhưng nó sẽ được tốt đẹp nếu có một cách để trích xuất file Rd từ RDA các tập tin. Nếu bạn muốn có tệp .Rd, bạn luôn có thể tải xuống gói (hoặc trong trường hợp gói cơ sở, nguồn R). –

+3

@robermorales Có, tôi biết điều đó, cảm ơn bạn. Nhưng đây là một câu hỏi lập trình, không phải là câu hỏi phân tích thống kê, vì vậy sẽ không có chủ đề về CrossValidated. – Andrie

Trả lời

26

Dường như bạn có thể trích xuất các nguồn Rd từ một cài đặt R. Tôi đang sử dụng R-devel (2011-09-05 r56942).

Lấy cơ sở dữ liệu của Rd cho gói cơ sở.

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

Tìm kiếm "grep.Rd" trong tên của các Rd DB, ví dụ:

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" 

Nhận chỉ là đối tượng Rd cho 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{ 
... 
... 

Có các công cụ để lấy các thành phần từ đối tượng Rd, vì vậy bạn có thể tinh chỉnh tìm kiếm từ khóa hoặc tên, xem ví dụ trong? Rd_db và dùng thử.

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

+1 Điều này thật tuyệt vời, cảm ơn bạn. – Andrie

Các vấn đề liên quan