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

Dimitri Liakhovitski dimitri.liakhovitski at gmail.com
Thu Apr 7 18:57:32 CEST 2011


Thanks a lot, Ista!

On Thu, Apr 7, 2011 at 11:52 AM, Ista Zahn <izahn at psych.rochester.edu> wrote:
> 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
>



-- 
Dimitri Liakhovitski
Ninah Consulting
www.ninah.com



More information about the R-help mailing list