Skip to content

as.character.factor and S4 object containing factor

2 messages · Ott Toomet, Michael Lawrence

#
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...
Object of class "Foo"
[1] 1 2 3
Levels: 1 2 3
[1] "Foo"
attr(,"package")
[1] ".GlobalEnv"
[1] TRUE
[1] TRUE
Error in as.character.factor(a) : attempting to coerce non-factor
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
#
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: