В R, как установить класс S4 на основе класса другого объекта - PullRequest
1 голос
/ 02 марта 2010

Мне нужно создать объект типа ShortReadQ из библиотеки ShortRead в Bioconductor.

ShortReadQ 'signature(sread = "DNAStringSet", quality =
          "QualityScore", id = "BStringSet")'

Слот качества должен быть объектом, унаследованным от QualityScore, который я легко могу определить из другого объекта ShortReadQ, который я хочу эмулировать.

> class(quality(anotherObject))
[1] "SFastqQuality"
attr(,"package")
[1] "ShortRead"

Как лучше всего использовать эту информацию («SFastqQuality») в аргументе конструктора?

newObject<-ShortReadQ(sread=...,
             quality=SFastqQuality(...), 
             id=...)

Ответы [ 3 ]

1 голос
/ 02 марта 2010

Делает ли это то, что вы хотите?

quality = new(class(old.quality.obj)[[1]]))
0 голосов
/ 02 марта 2010

спасибо за ваши ответы. они приводят меня к решению, которое работает

newObject<-ShortReadQ(sread=...,
             quality=new(Class=class(quality(anotherObject)),theFirstParameter=...), 
             id=...)
0 голосов
/ 02 марта 2010

Возможно, вы захотите получить функцию:

a <- get(class(object))
a(...)
...