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]]