SORU
30 EKİM 2012, Salı


Rd başka bir paket S4 bir yöntem uzanan zaman adı çatışma dosya

Gerçek soru

Nasıl Rd dosya çakışmaları önlemek zaman

  1. S4 genel ve Yöntem(ler)değilmutlaka aynı paketteki tüm tanımlı (paket içeren (bazıları) özel yöntem(ler) paketi genel içeren bağlıdır)ve
  2. paketi roxygenize() 39 ** gerçek Rd dosyalarını oluşturmak için?

Emin değilim eğer bu bir roxygen2 sorunu veya genel bir sorun olduğunda genel ve Yöntem(ler) yayılmış paketleri (hangi IMHO genel kesinlikle gerçekçi bir kullanım senaryo eğer takip ettiğin bir modüler programlama tarzı).

Bu durumu ele almak için önerilen yol nedir?

Resimde

pkga paket

8* *genel bir yöntem tanımlanmış ve ilgili roxygen kodu sağladıktan roxygenize() Rd dosyası oluşturmak için alır o pakette sanırım pkga:

#' Test function
#' 
#' Test function.
#' 
#' @param ... Further arguments.
#' @author Janko Thyson \email{janko.thyson@@rappster.de}
#' @example inst/examples/foo.R
#' @docType methods
#' @rdname foo-methods
#' @export

setGeneric(
    name="foo",
    signature=c("x"),
    def=function(
         x,  
        ...
    ) {
    standardGeneric("xFoo")       
    }
)

roxygenizing() zaman paketiniz, bir dosya foo-methods.Rd denilen bu genel yöntem için oluşturulan tüm yöntemleri için referans Rd dosyası olarak hizmet veren man alt dizininde oluşturulur. Şimdiye kadar çok iyi. Eğer bu genel için tüm yöntemleri de paketinin bir parçası olursa, her şey iyi. Örneğin, bu roxygen kod belgeleri foo ANYyöntemi foo-methods.Rd eklenir emin olun:

#' @param x \code{ANY}.
#' @return \code{TRUE}.
#' @rdname foo-methods
#' @aliases foo,ANY-method
#' @export

setMethod(
    f="foo", 
    signature=signature(x="ANY"), 
    definition=cmpfun(function(
        x,
        ...
    ) {
    return(TRUE)
    }, options=list(suppressAll=TRUE))
)

Ancak, eğer paket pkga sağlar genel foo ve karar başka bir paketin (pkgb) eklemek için foo-yöntem x varlık sınıfı character R CMD check seni söyleyecek bir adı çatışma ile saygı Rd dosya isimleri ve/veya diğer adlar (orada zaten bir dosya Rd foo-methods.Rd pkga):

pkgb paket

#' @param x \code{character}.
#' @return \code{character}.
#' @rdname foo-methods
#' @aliases foo,character-method
#' @export

setMethod(
    f="foo", 
    signature=signature(x="character"), 
    definition=cmpfun(function(
        x,
        ...
    ) {
    return(x)
    }, options=list(suppressAll=TRUE))
)

Daha net olmak gerekirse, bu/00install.out dosyaya yazılı atılmış olan bir hata

Error : Q:/pkgb/man/foo-methods.Rd: Sections \title, and \name must exist and be unique in Rd files
ERROR: installing Rd objects failed for package 'pkgb'

Due dilligence

Denedim değerleri değiştirmek için @rdname @aliases foo_pkgb* (yerine foo*), ama \title \name hala ayarlamak için foo zaman roxygenizing ve böylece hata devam ediyor. Herhangi bir fikirel ile Rd dosyalarını düzenleme dışındaroxygenize()? tarafından üretilen


2012-12-01 DÜZENLEYİN

Bounty başlayan ışığında, gerçek soru biraz daha geniş bir fikir sahibi olabilir:

Nasıl uygulamak bir çeşit "ınter-paketi" çekle saygı Rd dosya ve/veya nasıl yapabiliriz pekiştirmek S4 yöntem yardım dosyaları her tarafına yayılmış bir paket halinde tek bir dosya Rd amacıyla mevcut tek kaynak başvuru için son kullanıcı?

CEVAP
10 EYLÜL 2013, Salı


Uzlaşma böyle dönmeler genelleştirilmiş kullanarak gerçekleştirmek gerekir gibi görünüyor.

Apı için bkz: http://www.blender.org/documentation/249PythonDoc/Mathutils.Quaternion-class.html

Matematik bir giriş için bkz: http://en.wikipedia.org/wiki/Rotation_formalisms_in_three_dimensions#Quaternions

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Māris Zaharovs

    Māris Zahar

    28 Mayıs 2008
  • ShayLoss

    ShayLoss

    5 Kasım 2009
  • TechShowsYou

    TechShowsYou

    3 Mart 2011