[R] Basic factor question.
jim holtman
jholtman at gmail.com
Sun Aug 3 00:29:28 CEST 2008
The 'levels' is supposed to be the order in which you want the factors
to be. You have specified levels=1:20 and there are no matching
values in letters[1:20], therefore NAs:
> x <- factor(letters[1:20], levels=letters[20:1])
> x
[1] a b c d e f g h i j k l m n o p q r s t
Levels: t s r q p o n m l k j i h g f e d c b a
> x <- factor(letters[1:20], levels=LETTERS[20:1]) # error no matching levels
> x
[1] <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
<NA> <NA> <NA> <NA> <NA> <NA>
[20] <NA>
Levels: T S R Q P O N M L K J I H G F E D C B A
> x <- factor(letters[1:20])
> x
[1] a b c d e f g h i j k l m n o p q r s t
Levels: a b c d e f g h i j k l m n o p q r s t
> as.integer(x)
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
>
You can see in the last statement that the integer values for x are
numbered, probably as you were expecting them.
On Sat, Aug 2, 2008 at 5:48 PM, <rkevinburton at charter.net> wrote:
> Doing ?factor I get:
>
> x a vector of data, usually taking a small number of distinct values.
> levels an optional vector of the values that x might have taken. The default is the set of values taken by x, sorted into increasing order.
>
> So if I do:
>
> factor(letters[1:20],level=seq(1:20)
> [1] <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
> [16] <NA> <NA> <NA> <NA> <NA>
> Levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
>
> So why all of the NA? What happend to 'a'. 'b', etc.? I was expecting a=1, b=2, c=3 etc.
>
> I am missing something. Please help with my understanding.
>
> Keviin
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
--
Jim Holtman
Cincinnati, OH
+1 513 646 9390
What is the problem that you are trying to solve?
More information about the R-help
mailing list