[R] correction to the previously asked question (about merging factors)

Spencer Graves spencer.graves at pdf.com
Thu Feb 5 21:44:04 CET 2004


      What about the following: 

 > F1 <- factor(c("b", "a"))
 > F2 <- factor(c("c", "b"))
 > k1 <- length(F1)
 > k2 <- length(F2)
 > F12.lvls <- unique(c(levels(F1), levels(F2)))
 > F. <- factor(rep(F12.lvls[1], k1+k1), levels=F12.lvls)
 > F.[1:k1] <- F1
 > F.[-(1:k1)] <- F2
 > F.
[1] b a c b
Levels: a b c

      This saves converting the factors to characters, which might save 
computer time at the expense of your time. 
      hope this helps. 
      spencer graves

Svetlana Eden wrote:

>I have two factors l1, l2, and I'd like to merge them.
>
>(Remark:       The factors can not be converted to charaters)
>
>Function c() does not give me the result I want:
>
>
>  
>
>>l1 = factor(c('aaaa', 'bbbb'))
>>l2 = factor(c('ccc', 'dd'))
>>lMerge = factor(c(l1, l2))
>>lMerge
>>    
>>
>[1] 1 2 1 2
>Levels: 1 2
>  
>
>I'd like to merge l1 and l2 and to get lMerge 
>----------------------------------------------
>
>[1] aaaa bbbb ccc dd
>Levels: aaaa bbbb ccc dd
>
>instead of 
>----------
>
>[1] 1 2 1 2
>Levels: 1 2
>  
>
>
>How should I do that without converting the factors back to strings.
>-------------------------------------------------------------------
>
>  
>




More information about the R-help mailing list