Skip to content

Assigning a larger number of levels to a factor that has fewer levels

3 messages · Dimitri Liakhovitski, Ista Zahn

#
Hello!

I have larger and a smaller data frame with 1 factor in each - it's
the same factor:

large.frame<-data.frame(myfactor=LETTERS[1:10])
small.frame<-data.frame(myfactor=LETTERS[c(9,7,5,3,1)])
levels(large.frame$myfactor)
levels(small.frame$myfactor)
table(large.frame$myfactor)
table(small.frame$myfactor)

myfactor has 10 levels in large.frame and 5 levels in small.frame. All
5 levels in small.frame are present in large.frame.
How could I make levels(small.frame$myfactor) contain all the same
levels as levels(large.frame$myfactor)?
In other words, I want table(small.frame$myfactor) to have the same
number of entries as table(small.frame$myfactor) but with 5 zeros in
it:
A B C D E F G J I J
1 0 1 0 1 0 1 0 1 0

Thank you very much for your suggestions!
#
Hi Dimitri,
The factor() function allows you to specify the levels. So

small.frame$myfactor <- factor(small.frame$myfactor, levels =
levels(large.frame$myfactor))

should do it.

Best,
Ista

On Thu, Apr 7, 2011 at 11:47 AM, Dimitri Liakhovitski
<dimitri.liakhovitski at gmail.com> wrote:

  
    
#
Thanks a lot, Ista!
On Thu, Apr 7, 2011 at 11:52 AM, Ista Zahn <izahn at psych.rochester.edu> wrote: