Oksijenli sınıfları belgelemek için (2), bir başlık ve açıklama / ayrıntı belirtmek işlevler, yöntemler, veriler vb. İle aynı görünmektedir. Ancak, yuvalar ve kalıtım kendi hayvan türleridir. Oksijen2'deki S4 sınıflarını belgelemek için mevcut veya planlanmış en iyi uygulama nedir?
Durum tespit süreci:
@slot
Oksijenin erken tanımlarında bir etiketten bahsetmiştim .
2008 R-forge posta listesi gönderisi
bunun öldüğünü gösteriyor ve @slot
oksijeni desteklemiyor :
Bu roxygen2 için doğru mu? Daha önce bahsedilen gönderi, kullanıcının bunun yerine LaTeX işaretlemesiyle kendi ayrıntılı listesini yapması gerektiğini önermektedir. Örneğin, "character"
sınıfı genişleten yeni bir S4 sınıfı şu şekilde kodlanır ve belgelenir:
#' The title for my S4 class that extends \code{"character"} class.
#'
#' Some details about this class and my plans for it in the body.
#'
#' \describe{
#' \item{myslot1}{A logical keeping track of something.}
#'
#' \item{myslot2}{An integer specifying something else.}
#'
#' \item{myslot3}{A data.frame holding some data.}
#' }
#' @name mynewclass-class
#' @rdname mynewclass-class
#' @exportClass mynewclass
setClass("mynewclass",
representation(myslot1="logical",
myslot2="integer",
myslot3="data.frame"),
contains = "character"
)
Bununla birlikte, bu işe yarıyor olsa da, bu \describe
, \item
yuvaları belgeleme yaklaşımı, geri kalan hiç bir @
etiket bulunmaması ve yuvaların itiraz olmadan belgelenemeyeceği için , geri kalan oksijen ile (2) tutarsız görünmektedir roxygenize()
. Ayrıca, tanımlanan sınıfın mirasını belgelemenin tutarlı bir yolu hakkında hiçbir şey söylemez. Bağımlılığı hala (belirli bir yuva başka bir paketten temel olmayan bir sınıf gerektiriyorsa) genellikle iyi çalışıyor hayal ediyorum @import
.
Özetlemek gerekirse, oksijen (2) yuvaları için en iyi uygulama hangisidir?
Şu anda dikkate alınması gereken üç seçenek var:
- A - Ayrıntılı liste (yukarıdaki örnekte olduğu gibi).
- B -
@slot
... ama ekstra etiketler / uygulama ile kaçırdım. Yukarıdaki örnekte listelenen listenin yerini alan sürümlerde roxygen / roxygen2 ile çalışmak için @slot alamadım. Yine, yukarıdaki örnek, oksijen ile çalışmaktadır (2).- C - Yuvaları belirtmek
@param
için aynı şeyi başaracak alternatif bir etiket .
Bu soruyu github'dakiroxygen2
geliştirme sayfasına yaptığım bir yazıdan ödünç alıyorum / genişletiyorum .
setClass
ifade var sevindim setMethod
. Değişikliği @slot
uygulandıktan sonra yapmak çok acı verici olmaz.
@slot
muhtemelen uzun vadede istediğiniz şeydir, ancak önce uygulanması gerekir ...