[R] Assigning a larger number of levels to a factor that has fewer levels

Ista Zahn izahn at psych.rochester.edu
Thu Apr 7 17:52:00 CEST 2011


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:
> 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!
> --
> Dimitri Liakhovitski
> Ninah Consulting
> www.ninah.com
>
> ______________________________________________
> 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.
>



-- 
Ista Zahn
Graduate student
University of Rochester
Department of Clinical and Social Psychology
http://yourpsyche.org



More information about the R-help mailing list