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 <dwinsemius@comcast.net>
>À : arun <smartpink111@yahoo.com> 
>Cc : R help <r-help@r-project.org>; Biau David <djmbiau@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 <dwinsemius@comcast.net>
>> To: Biau David <djmbiau@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]]


