[R] Counting Frequencies in Data Frame
Ista Zahn
istazahn at gmail.com
Tue May 18 17:34:55 CEST 2010
Hi,
Others will have fancier solutions, but is the way I would do it:
dat <- read.table(textConnection("1 2 3
1 aa ab ab
2 ab ab ab
3 aa aa aa
4 bb bb bb"), header=TRUE)
closeAllConnections()
countAB <- function(x) {
aa <- length(which(x == "aa"))
ab <- length(which(x == "ab"))
bb <- length(which(x == "bb"))
Result <- c(aa, ab, bb)
return(Result)
}
Counts <- as.data.frame(t(apply(dat, 1, countAB)))
names(Counts) <- c("aa", "ab", "bb")
Best,
Ista
On Tuesday 18 May 2010 10:12:49 am M.Ribeiro wrote:
> Hi,
> I am sure there is an easy way to do it, but I can't find it.
> I have a data frame that has 15 columns and 7000 rows.
>
> The only values inside the data.frame are "aa", "ab", "bb" as you can see
> an example bellow.
>
> 1 2 3
> 1 aa ab ab
> 2 ab ab ab
> 3 aa aa aa
> 4 bb bb bb
>
> What I would like to do, is to generate a vector (or another data.frame)
> with 7000 rows, and 3 columns. In the first column, the information about
> how many aa, the second about how many ab, and the third about how many bb
> are there in each line
> aa ab bb
> 1 1 2 0
> 2 0 2 0
> 3 3 0 0
> 4 0 0 3
>
> Thank you very much
> Cheers
More information about the R-help
mailing list