OK thanks for the tips. I have abandonned the use of cbidn in dataframe. I've used the obth dcast() and melt() and they both work fine. Thanks again
David Biau >________________________________ > De : David Winsemius <dwinsem...@comcast.net> >À : arun <smartpink...@yahoo.com> >Cc : R help <r-help@r-project.org>; Biau David <djmb...@yahoo.fr> >Envoyé le : Vendredi 11 janvier 2013 18h54 >Objet : Re: [R] count combined occurrences of categories > > >On Jan 11, 2013, at 9:47 AM, arun wrote: > >> HI David, >> >> I get different results with dcast() >> >> library(reshape2) >> dcast(melt(tutu,"nam"),nam~value,length) >> # nam art deb joy mar seb lio nem tat >> #1 da 2 3 1 4 1 1 0 0 >> #2 fr 2 2 2 3 0 1 1 1 >> #3 ya 1 2 1 0 0 1 1 0 >> >> tutus <- data.frame(nam=tutu$nam, au=with(tutu, c(au1,au2,au3))) >> with(tutus,table(nam,au)) >> # au >> #nam 1 2 3 4 5 6 7 >> # da 2 3 1 2 4 0 0 #some numbers don't match the previous result >> #fr 2 2 2 2 2 1 1 >> #ya 1 2 1 1 0 1 0 >> #If I convert to as.character(), it matched with the dcast() results > >Probably due to the fact I used c() on factors: > >tutu <- data.frame(nam, au1, au2, au3, stringsAsFactors=FALSE) >> tutus <- data.frame(nam=tutu$nam, au=with(tutu, c(au1,au2,au3))) >> tutab <- with(tutus, table(nam, au) ) >> tutab > au >nam art deb joy lio mar nem seb tat > da 2 3 1 1 4 0 1 0 > fr 2 2 2 1 3 1 0 1 > ya 1 2 1 1 0 1 0 0 > >-- David. >> >> tutunew<-data.frame(nam=tutu$nam,au=with(tutu,c(as.character(au1),as.character(au2),as.character(au3)))) >> with(tutunew,table(nam,au)) >> # au >> #nam art deb joy lio mar nem seb tat >> # da 2 3 1 1 4 0 1 0 >> #fr 2 2 2 1 3 1 0 1 >> #ya 1 2 1 1 0 1 0 0 >> A.K. >> >> >> >> >> >> ----- Original Message ----- >> From: David Winsemius <dwinsem...@comcast.net> >> To: Biau David <djmb...@yahoo.fr> >> Cc: r help list <r-help@r-project.org> >> Sent: Friday, January 11, 2013 12:20 PM >> Subject: Re: [R] count combined occurrences of categories >> >> >> On Jan 11, 2013, at 2:54 AM, Biau David wrote: >> >>> Dear all, >>> >>> i would like to count the number of times where I have combined occurrences >>> of the categories of 2 variables. >>> >>> For instance, in the dataframe below, i would like to know how many times >>> each author (au1, au2, au3 represent the first, second, third author) is >>> associated with each of the category of the variable 'nam'. The position of >>> the author does not matter. >>> >>> nam <- c('da', 'ya', 'da', 'da', 'fr', 'fr', 'fr', 'da', 'ya', 'fr') >>> au1 <- c('deb', 'art', 'deb', 'seb', 'deb', 'deb', 'mar', 'mar', 'joy', >>> 'joy') >>> au2 <- c('art', 'deb', 'mar', 'deb', 'joy', 'mar', 'art', 'lio', 'nem', >>> 'mar') >>> au3 <- c('mar', 'lio', 'joy', 'mar', 'art', 'lio', 'nem', 'art', 'deb', >>> 'tat') >>> tutu <- data.frame(cbind(nam, au1, au2, au3)) >> >> You should first abandon the practice of using `cbind` inside `data.frame`. >> Obscure errors will plague your R experience until you do so. >> >> Bas solution: >> >>> tutus <- data.frame(nam=tutu$nam, au=with(tutu, c(au1,au2,au3))) >>> tutab <- with(tutus, table(nam, au) ) >>> tutab >> au >> nam 1 2 3 4 5 6 7 >> da 2 3 1 2 4 0 0 >> fr 2 2 2 2 2 1 1 >> ya 1 2 1 1 0 1 0 >> >> -- >> David Winsemius, MD >> Alameda, CA, USA >> >> ______________________________________________ >> 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. >> > >David Winsemius, MD >Alameda, CA, USA > > > > [[alternative HTML version deleted]]
______________________________________________ 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.