Skip to content
Prev 308305 / 398506 Next

how to concatenate factor vectors?

Hi,
May be this also works:
?a <- factor(c(1,3,5))
?b <- factor(c(5,7))
f1<-as.numeric(c(as.character(a),as.character(b)))
lev<-as.numeric(c(levels(a),setdiff(levels(b),levels(a))))
f2<-factor(f1,levels=lev)
?f2
#[1] 1 3 5 5 7
#Levels: 1 3 5 7

a1<-factor(5:1,levels=1:9)
?b1<-factor(9:1,levels=1:9)
f<-as.numeric(c(as.character(a1),as.character(b1)))
?lev1<-as.numeric(c(levels(a1),setdiff(levels(b1),levels(a1))))
?f3<-factor(f,levels=lev1)
?f3
# [1] 5 4 3 2 1 9 8 7 6 5 4 3 2 1
#Levels: 1 2 3 4 5 6 7 8 9

A.K.




----- Original Message -----
From: Bert Gunter <gunter.berton at gene.com>
To: Jorge I Velez <jorgeivanvelez at gmail.com>
Cc: r-help at r-project.org; sds at gnu.org
Sent: Thursday, October 18, 2012 2:21 AM
Subject: Re: [R] how to concatenate factor vectors?

No. You need to test more carefully.
[1] 1 2 3 1 2
[1] 1 2 3 1 2
Levels: 1 2 3

## but
[1] 1 3 5 5 7
Levels: 1 3 5 7

However, Is level "5" in 'a' the same as level "5" in 'b' ? The OP
fails to specify, and there's no reason to assume so.? So I would say
clarification is required before any answer can be given.

-- Bert

On Wed, Oct 17, 2012 at 10:43 PM, Jorge I Velez
<jorgeivanvelez at gmail.com> wrote: