Hi all, I hope it's not too trivial for the list - I'm trying to concatenate two factor arrays, and obtain the following:> f1<-factor(c("a","a","b")) > f1[1] a a b Levels: a b> f2<-factor(c("b","b","a")) > f2[1] b b a Levels: a b> c(f1,f2)[1] 1 1 2 2 2 1 Instead of getting: [1] a a b b b a Levels: a b a related question is: how do I add a level which does not exists yet in a factored vector, so I'll be able to add later these values, without getting: In `[<-.factor`(`*tmp*`, 2, value = "c") : invalid factor level, NAs generated Thanks, EC
Hi,
I have a solution to concatenate two factors in one but I don't believe
it is the best one: factor(c(as.character(f1),as.character(f2)))
[1] a a b b b a
Levels: a b
You can always add a level by assigning a new vector at the level vector:
levels(f1) <- c("a","b","c")
f1
[1] a a b
Levels: a b c
udi cohen wrote:> Hi all,
>
> I hope it's not too trivial for the list - I'm trying to
concatenate
> two factor arrays, and obtain the following:
>
>
>> f1<-factor(c("a","a","b"))
>> f1
>>
> [1] a a b
> Levels: a b
>
>> f2<-factor(c("b","b","a"))
>> f2
>>
> [1] b b a
> Levels: a b
>
>> c(f1,f2)
>>
> [1] 1 1 2 2 2 1
>
> Instead of getting:
>
> [1] a a b b b a
> Levels: a b
>
> a related question is: how do I add a level which does not exists yet
> in a factored vector, so I'll be able to add later these values,
> without getting:
>
> In `[<-.factor`(`*tmp*`, 2, value = "c") :
> invalid factor level, NAs generated
>
> Thanks,
>
> EC
>
> ______________________________________________
> R-help@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.
>
>
--
Alain Guillet
Statistician and Computer Scientist
SMCS - Institut de statistique - Université catholique de Louvain
Bureau d.126
Voie du Roman Pays, 20
B-1348 Louvain-la-Neuve
Belgium
tel: +32 10 47 30 50
[[alternative HTML version deleted]]
You can try this also: unlist(list(f1, f2)) On Fri, Nov 21, 2008 at 3:15 PM, udi cohen <ehudco@gmail.com> wrote:> Hi all, > > I hope it's not too trivial for the list - I'm trying to concatenate > two factor arrays, and obtain the following: > > > f1<-factor(c("a","a","b")) > > f1 > [1] a a b > Levels: a b > > f2<-factor(c("b","b","a")) > > f2 > [1] b b a > Levels: a b > > c(f1,f2) > [1] 1 1 2 2 2 1 > > Instead of getting: > > [1] a a b b b a > Levels: a b > > a related question is: how do I add a level which does not exists yet > in a factored vector, so I'll be able to add later these values, > without getting: > > In `[<-.factor`(`*tmp*`, 2, value = "c") : > invalid factor level, NAs generated > > Thanks, > > EC > > ______________________________________________ > R-help@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. >-- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O [[alternative HTML version deleted]]