Skip to content
Prev 32509 / 63424 Next

suggestion for extending ?as.factor

In R-2.10.0, the development version, function as.factor() uses 17 digit
precision for conversion of numeric values to character type. This
is very good for the consistency of the resulting factor, however,
i expect that people will complain about, for example, as.factor(0.3)
being
  [1] 0.29999999999999999
  Levels: 0.29999999999999999

I suggest to extend the "Warning" section of ?as.factor by the following
paragraph.

If as.factor() is used for a numeric vector, then the numbers are
converted to character strings with 17 digit precision using their
machine representation. This guarantees that different numbers are
converted to different levels, but may produce unwanted results, if
the numbers are expected to have limited number of decimal positions.
For example, as.factor(c(0.1, 0.2, 0.3)) produces
  [1] 0.10000000000000001 0.20000000000000001 0.29999999999999999
  Levels: 0.10000000000000001 0.20000000000000001 0.29999999999999999
In order to avoid this, convert the numbers to a character vector
using formatC() or a similar function before using as.factor().

Petr.

Thread (25 messages)

Petr Savicky suggestion for extending ?as.factor May 3 Martin Maechler suggestion for extending ?as.factor May 4 Peter Dalgaard suggestion for extending ?as.factor May 4 Martin Maechler suggestion for extending ?as.factor May 4 Petr Savicky suggestion for extending ?as.factor May 4 Peter Dalgaard suggestion for extending ?as.factor May 4 Petr Savicky suggestion for extending ?as.factor May 5 Martin Maechler suggestion for extending ?as.factor May 5 Peter Dalgaard suggestion for extending ?as.factor May 5 Petr Savicky suggestion for extending ?as.factor May 5 Martin Maechler suggestion for extending ?as.factor May 6 Petr Savicky suggestion for extending ?as.factor May 7 Petr Savicky suggestion for extending ?as.factor May 8 Martin Maechler suggestion for extending ?as.factor May 8 Petr Savicky suggestion for extending ?as.factor May 8 Petr Savicky suggestion for extending ?as.factor May 8 Martin Maechler suggestion for extending ?as.factor May 8 Petr Savicky suggestion for extending ?as.factor May 8 Michael Dewey suggestion for extending ?as.factor May 9 Martin Maechler suggestion for extending ?as.factor May 9 Petr Savicky suggestion for extending ?as.factor May 10 Martin Maechler suggestion for extending ?as.factor May 11 Petr Savicky suggestion for extending ?as.factor May 11 Petr Savicky suggestion for extending ?as.factor May 12 Martin Maechler suggestion for extending ?as.factor May 12