-------- Original-Nachricht -------- > Datum: Mon, 2 Jan 2012 14:29:07 +0100 > Von: Petr PIKAL <petr.pi...@precheza.cz> > An: "Johannes Radinger" <jradin...@gmx.at> > CC: r-help@r-project.org > Betreff: Re: [R] summary per group
> Hi > > > > > Hello, > > > > I know that it'll be quite easy to do what I want but somehow I am lost > as > > I am new to R. I want to get summary results arranged by groups. In > detail > > I'd like get the number (levels) of Species per Family like for this > dataset: > > > > SPEC <- factor(c("a","a","b","b","c","c","c","d","e","e","e","e")) > > FAM <- factor(c("A","A","A","A","B","B","B","C","C","C","C","C")) > > df <- data.frame(SPEC,FAM) > > > > I tried tapply(SPEC, FAM, nlevels).. but it is not the result I am > looking for... > > > > What is the easiest way to do that? Do I have to rearrange the dataset? > > To do what? Do you want number of unique entries within each level of FAM? > If yes > > sapply(tapply(SPEC, FAM, unique), length) > > can do this. > > Regards > Petr Thank you Petr, that is exactly what I was looking for... no I played a little bit around with that because I want to create a summary with FAM as a grouping variable. Beside the number of unique SPEC per FAM also want to get their levels as text. So far I know I have following: paste(unique(SPEC), collapse = ', ') But how can I use that in combination with tapply and furthermore with cbind like: SPEC <- factor(c("a","a","b","b","c","c","c","d","e","e","e","e")) FAM <- factor(c("A","A","A","A","B","B","B","C","C","C","C","C")) df <- data.frame(SPEC,FAM) with(df, cbind("Number of SPEC"=sapply(tapply(SPEC,FAM,unique),length), "SPECs"=tapply(SPEC,FAM,unique))) The result should look like: Number of SPEC SPECs A 2 "a, b" B 1 "c" C 2 "d, e" Thank you, /johannes -- ______________________________________________ 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.