[Rd] How to put my class into data.frame

From: Gregor Gorjanc <gregor.gorjanc_at_bfro.uni-lj.si>
Date: Sat 04 Nov 2006 - 00:33:57 GMT


I am developing a composition class, which represents a composition of mixture of levels, say soil has three components and each component accounts for 1/3 of the unit. I have tried with S4 class system and I would appreciate any help here. I was hoping that I would be able to include instance of my class into a data.frame. However, I encounter problems.

Simple definition of class could be



n <- 2
k <- 3

x <- new(Class="composition", ratios=matrix(data=rep(x=1/3, times=n*k), nrow=n, ncol=k))

An object of class "composition"
Slot "ratios":

          [,1] [,2] [,3]
[1,] 0.3333333 0.3333333 0.3333333
[2,] 0.3333333 0.3333333 0.3333333

tmp <- data.frame(id=1:2)
tmp$comp <- x
Error: object is not subsettable

As I understand this, my problem is that x is of length 1 as the following works

tmp$comp <- c(x, x)

although I am not able to print tmp now

Error in unlist(x, recursive, use.names) :

        argument not a list

but this is expected as I (probably) need show/print method for this. How can I put my class into data.frame or how can I make my class behave as a vector?


Lep pozdrav / With regards,
    Gregor Gorjanc
University of Ljubljana     PhD student
Biotechnical Faculty
Zootechnical Department     URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3                   mail: gregor.gorjanc <at> bfro.uni-lj.si

SI-1230 Domzale             tel: +386 (0)1 72 17 861
Slovenia, Europe            fax: +386 (0)1 72 17 888

"One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try." Sophocles ~ 450 B.C.

R-devel@r-project.org mailing list
Received on Sat Nov 04 11:44:11 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Sat 04 Nov 2006 - 01:30:34 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.