Under R 2.3.1 these work as you indicate but under R 2.4.0 they all give errors:
> setClass("track", representation(x="numeric", y="numeric")) [1] "track" > tr <- new( "track" ) > tr[ "ping" ] <- "pong" Error in "[<-"(`*tmp*`, "ping", value = "pong") : object is not subsettable > tr$bingo <- "bongo" Error: cannot coerce type S4 to list vector In addition: Warning message: Coercing LHS to a list > tr[[ "blaa" ]] <- c( 200, 300 ) Error in "[[<-"(`*tmp*`, "blaa", value = c(200, 300)) : object is not subsettable > tr[ "blaa" ] Error in tr["blaa"] : object is not subsettable > R.version.string [1] "R version 2.4.0 Under development (unstable) (2006-08-08 r38825)" On 8/28/06, Jörg Beyer <[EMAIL PROTECTED]> wrote: > Hello. > > Suppose you define a new S4-class, say > > setClass("track", representation(x="numeric", y="numeric")) > > Don't worry if you have a deja vu, it's from the help page. > Your new class is said to have a fixed structure: two slots, x, and y, > and that should apply to all objects you construct as members of that class. > > tr <- new( "track" ) > > Now do the following: > > tr[ "ping" ] <- "pong" > > tr$bingo <- "bongo" > > tr[[ "blaa" ]] <- c( 200, 300 ) > > Of course you can use the well known operators to access these "list entries > in a S4-class object": > > tr[ "blaa" ] > > etc. > > You see what can happen if you decide to do a bit stress testing. The > question is not whether my examples makes sense or not. The question is if > these examples should be possible at all. > I wonder which is true, > -- the theory (Chambers, 1998, p. 279ff; Venables and Ripley, 2000, p. 99ff: > "... All objects in a [S4] class must have the same structure. ..."; etc.) > -- or the actual implementation in R (see my example, which successfully > violates the design principles of the language) > > Bug, or feature? Any clarifications are appreciated -- it may be my > half-cooked knowledge that I find this confusing and dangerous. > > Best > > Joerg Beyer > > P.S.: > Oh, the specs: PowerMac G4/400 PCI -- 1GB RAM -- Mac OS X 10.4.6 -- R 2.2.1 > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel