From lawrence.michael at gene.com  Thu Sep 22 20:20:04 2016
From: lawrence.michael at gene.com (Michael Lawrence)
Date: Thu, 22 Sep 2016 11:20:04 -0700
Subject: [Rd] as.character.factor and S4 object containing factor
In-Reply-To: <CAMMJQ0bqi8hYzNoLh-H8SCuuGrXqm9dXq9ozepLsf039TpB0Jw@mail.gmail.com>
References: <CAMMJQ0bqi8hYzNoLh-H8SCuuGrXqm9dXq9ozepLsf039TpB0Jw@mail.gmail.com>
Message-ID: <CAOQ5NyfVxGBjSM8WxDBUVpt9qRB5B0NrnCMSH1UrWzEkOvLdvQ@mail.gmail.com>

The issue with as.character.factor() was reported and fixed recently.

https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17141

The warning emitted from print.factor() is interesting. I'm not sure
why we are setting the class to NULL there. Could just create a new
character vector instead. Will look into it later.

Michael

On Thu, Sep 22, 2016 at 10:41 AM, Ott Toomet <otoomet at gmail.com> wrote:
> Do I mess up something or is this a bug?  If I define an S4 object
> that contains "factor", all the tests indicate that it is a factor but
> as.character.factor() complains of it being a non-factor...
>
>> setClass("Foo", contains="factor")
>> a <- new("Foo", factor(1:3))
>> a
> Object of class "Foo"
> [1] 1 2 3
> Levels: 1 2 3
>> class(a)
> [1] "Foo"
> attr(,"package")
> [1] ".GlobalEnv"
>> inherits(a, "factor")
> [1] TRUE
>> is(a, "factor")
> [1] TRUE
>> as.character.factor(a)
> Error in as.character.factor(a) : attempting to coerce non-factor
>> print(a)
> Error in as.character.factor(x) : attempting to coerce non-factor
> In addition: Warning message:
> In print.factor(a) :
>   Setting class(x) to NULL;   result will no longer be an S4 object
>
> This means I cannot use ordinary print/summary methods...
>
> platform       x86_64-pc-linux-gnu
> arch           x86_64
> os             linux-gnu
> system         x86_64, linux-gnu
> status
> major          3
> minor          3.1
> year           2016
> month          06
> day            21
> svn rev        70800
> language       R
> version.string R version 3.3.1 (2016-06-21)
> nickname       Bug in Your Hair
>
> Cheers,
> Ott
>
>
> --
> Ott Toomet
>
> Visiting Researcher
> School of Information
> Mary Gates Hall, Suite 310
> University of Washington
> Seattle, WA 98195
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] as.character.factor and S4 object containing factor
Michael Lawrence