SORU
9 EYLÜL 2011, Cuma


Nasıl düzgün S4 sınıfı yuvaları Roxygen2 kullanarak belge için?

Roxygen ile belgeleyen sınıflar için(2), Bir Başlık belirtme ve/detay açıklama işlevleri, yöntemleri, verileri, vb gibi aynı görünüyor. Ancak, yuva ve miras hayvanın kendi tür vardır. Roxygen2 belgeleme S4 dersleri için en iyi yöntem, mevcut veya planlanan ...

Durum Tespiti:

Roxygen erken açıklamaları @slot bir etiket söz buldum. A 2008 R-forge mailing list post bu ölü olduğunu gösteriyor. ve roxygen *3 desteği yok:

Bu roxygen2 doğru? Daha önce sözü edilen yazı bir kullanıcı LaTeX biçimlendirme ile kendi ayrıntılı listesini yapmak gerekir yerine öneriyor. E. g. "character" sınıfını genişleten yeni bir sınıf S4 ve bu şekilde kodlanmış belgelenmiş olacaktır:

#' 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"
)

Ancak, ancak bu eserler, bu \describe , \item yaklaşım için belgeleme yuvası gibi tutarsız sıçrar roxygen(2) yok @sınırlandırılmış etiketler ve yuvaları gidebiliriz belgesiz hiçbir itiraz roxygenize(). Ayrıca sınıfı tanımlanmış ve devralma belgelemek için tutarlı bir şekilde hakkında hiçbir şey söylemez. Bağımlılık yine de genel olarak iyi eğer belirli bir yuvası başka bir paket sigara-bir temel sınıf gerektiriyorsa) @import etiketini kullanarak çalışıyor sanırım.

, Özetlemek gerekirse, roxygen(2) yuvaları için mevcut en iyi uygulama nedir?

Şu anda göz önünde üç seçenek var:

  • -- Ayrıntılı bir liste (örnek yukarıda).
  • B -- @slot ... ama ekstra etiketleri ile uygulama g/özledim. Sürüm nerede / roxygen2 roxygen @çalışmaya yuvası elde edemedi örnekte ayrıntılı listesi için bir yedek olarak dahil oldu yukarıda. Yine yukarıdaki örnekte roxygen ile çalışır(2).
  • C -- aynı şeyi gerçekleştirmek @param gibi belirtme yuvaları için Bazı alternatif etiketi.

github roxygen2 kalkınma sayfaya verdiğim bir yazı bu soruyu uzanan/ödünç alıyorum.

CEVAP
8 HAZİRAN 2012, Cuma


4.1.0 geçerli olarak Roygen2 3.0.0 için güncelleştirilmiş bir cevap.

S4, en iyi uygulama için form belgeleri:

#'  \section{Slots}{
#'    \describe{
#'      \item{\code{a}:}{Object of class \code{"numeric"}.}
#'      \item{\code{b}:}{Object of class \code{"character"}.}
#'    }
#'  }

Bu nesnenin içinde bir liste olarak yuva iç gösterim ile tutarlı. Senin de işaret ettiğin gibi, bu sözdizimi diğer kollarından farklı ve var olmayan miras -- ama bugün bilgi içerir ve gelecekte daha sağlam bir çözüm için umut olabilir.

@Brian Diggs tarafından da belirtildiği gibi, bu özellik 3.0.0, https://github.com/klutometis/roxygen/pull/85 daha fazla tartışmanın içine çekildi

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GOTO Conferences

    GOTO Confere

    3 EKİM 2011
  • infiniTuts

    infiniTuts

    18 Ocak 2012
  • SRI International

    SRI Internat

    30 NİSAN 2008