[Rd] S4 coerce
sfalcon at fhcrc.org
Tue Jul 17 07:06:44 CEST 2007
Paul Gilbert <pgilbert at bank-banque-canada.ca> writes:
> (I am not sure if this is a bug or a request for a more understandable
> warning, or possible something obvious I should be posting on r-help.)
> I am trying to coerce an new class object to be a DBIConnection and it
> does not work the way I think it should:
> R version 2.5.1 (2007-06-27) ...
> > require("RMySQL") # or require("RSQLite")
> Loading required package: RMySQL
> Loading required package: DBI
>  TRUE
> > m <- dbDriver("MySQL") # or m <- dbDriver("SQLite")
> > con <- dbConnect(m, dbname="test")
> > dbGetQuery(con, "create table zzz (
> + vintage VARCHAR(20) NOT NULL,
> + alias VARCHAR(20) default NULL,
> + Documentation TEXT,
> + PRIMARY KEY (vintage)
> + );")
> > dbListTables(con)
>  "zzz"
> > setClass("TSconnection", representation(con="DBIConnection",
> + vintage = "logical",
> + panel = "logical")
> + )
>  "TSconnection"
> > setAs("TSconnection", "DBIConnection", def = function(from) from at con)
I think things work as you expect up until this pint.
> > setIs("TSconnection", "DBIConnection", coerce = function(x)
> > x at con)
I'm confused about what you want to do here. If you want TSconnection
to be a DBIConnection, why wouldn't you use inheritance?
setClass("TSconnection", contains="DBIConnection", ...)
Seth Falcon | Computational Biology | Fred Hutchinson Cancer Research Center
More information about the R-devel