2010-02-22 12 views
43

Ist es möglich, .R-Dateien in das Datenverzeichnis meines Pakets im roxygen-Prozess aufzunehmen?Wie kann ich Datensätze mit Roxygen dokumentieren?

Ich habe mehrere .R-Dateien in das Datenverzeichnis geschrieben. Wenn sie mit Daten() versorgt werden, lesen sie Rohdatendateien ein und führen einige Transformationen durch.

Antwort

35

Roxygen kann überall in einer R-Datei verwendet werden (es muss also keine Funktion folgen). Es kann auch verwendet werden, um einen docType in der R-Dokumentation zu dokumentieren.

So können Sie einfach Ihre Daten in einem separaten Block dokumentieren (so etwas wie diese):

#' This is data to be included in my package 
#' 
#' @name data-name 
#' @docType data 
#' @author My Name \email{[email protected]@roxygen.org} 
#' @references \url{data_blah.com} 
#' @keywords data 
NULL 
+8

Außer Sie verwenden ist besser dran, 'NULL' anstelle von 'roxygen()', so dass Sie keine Laufzeitabhängigkeit von 'roxygen 'induzieren – hadley

+1

Ausgezeichneter Punkt, danke. Machte die Änderung. – Shane

+3

@hadley: Es wäre nett, ein Beispiel wie dieses in die Roxygen-Vignette einzufügen, und den Punkt über die Abhängigkeit von Roxygen zu machen? Ich fand das etwas verwirrend in Bezug auf die Struktur der Dateien. – Shane

27

Ab roxygen2> 4.0.0, können Sie das Datenobjekt dokumentieren an anderer Stelle definiert durch den Namen der Dokumentation das als String definierte Objekt:

#' This is data to be included in my package 
#' 
#' @author My Name \email{[email protected]@roxygen.org} 
#' @references \url{data_blah.com} 
"data-name" 
16

Ich fand es nützlich, die Beispiele im Paket ggplot2 zu studieren.

Siehe ggplot2.r on github

ein paar Dinge zu erwähnen:

  • All Roxygen Code für Datensätze in einer einzigen .r Datei im R Verzeichnis des Pakets enthalten sein können.

für Beispiele Siehe die diamonds-Datensatz:

#' Prices of 50,000 round cut diamonds 
#' 
#' A dataset containing the prices and other attributes of almost 54,000 
#' diamonds. The variables are as follows: 
#' 
#' \itemize{ 
#' \item price. price in US dollars (\$326--\$18,823) 
#' \item carat. weight of the diamond (0.2--5.01) 
#' \item cut. quality of the cut (Fair, Good, Very Good, Premium, Ideal) 
#' \item colour. diamond colour, from J (worst) to D (best) 
#' \item clarity. a measurement of how clear the diamond is (I1 (worst), SI1, SI2, VS1, VS2, VVS1, VVS2, IF (best)) 
#' \item x. length in mm (0--10.74) 
#' \item y. width in mm (0--58.9) 
#' \item z. depth in mm (0--31.8) 
#' \item depth. total depth percentage = z/mean(x, y) = 2 * z/(x + y) (43--79) 
#' \item table. width of top of diamond relative to widest point (43--95) 
#' } 
#' 
#' @docType data 
#' @keywords datasets 
#' @name diamonds 
#' @usage data(diamonds) 
#' @format A data frame with 53940 rows and 10 variables 
NULL 

Dies in einer Hilfedatei führt, die wie folgt aussieht:

roxygen documentation example

Verwandte Themen