Hi, Try this: dat1<- read.table(text=" ID Gender Age Rate A Female 0-10 Good A Male 0-10 Good B Female 11-20 Bad B Male 11-20 Bad C Male >20 N/A ",sep="",header=TRUE,stringsAsFactors=FALSE,na.strings="N/A") library(plyr) library(reshape2)
lst1<-lapply(list(c(3,4),c(2,4),c(2,3)),function(i) mutate(dcast(melt(dat1[,-i],id.var="ID"),value~ID,length),var=rowSums(cbind(A,B,C)))) lst2<-lapply(seq_along(colnames(dat1)[-1]),function(i) {x1<-lst1[[i]]; colnames(x1)[5]<- colnames(dat1)[i+1]; colnames(x1)[1]<-"Var1";x1[,c(1,5,2:4)]}) names(lst2)<- colnames(dat1)[-1] lst2 #$Gender # Var1 Gender A B C #1 Female 2 1 1 0 #2 Male 3 1 1 1 #$Age # Var1 Age A B C #1 0-10 2 2 0 0 #2 11-20 2 0 2 0 #3 >20 1 0 0 1 #$Rate # Var1 Rate A B C #1 Bad 2 0 2 0 #2 Good 2 2 0 0 #3 <NA> 1 0 0 1 A.K. ________________________________ From: Ye Lin <ye...@lbl.gov> To: arun <smartpink...@yahoo.com> Sent: Friday, April 19, 2013 1:44 PM Subject: Re: [R] count each answer category in each column Yes, but I am wondering if I can calculate how many kinds of answers and how many under each category together, then maybe results can be sth like : $Gender Var1 Gender A B C Male 3 1 1 1 Female 2 1 1 0 N/A 0 0 0 0 Thanks! Ye On Fri, Apr 19, 2013 at 10:36 AM, arun <smartpink...@yahoo.com> wrote: Hi Ye, >Just a doubt: >In the example given , for ID "A", you have 1 female and 1 male. > >Do you want to categorize the same thing for each ID? >For example: >A: >Var1 Gender >Female 1 >Male 1 >NA 0 > >Var1 Age >0-10 2 > >Var1 Rate >Good 2 > >B: >.................... >A.K. > > > > >________________________________ > From: Ye Lin <ye...@lbl.gov> >To: arun <smartpink...@yahoo.com> >Cc: R help <r-help@r-project.org> >Sent: Friday, April 19, 2013 1:25 PM >Subject: Re: [R] count each answer category in each column > > > > >Thanks A.K > > >Is it possible to apply this to a more complicated situation , for example, I >have an ID column for each row, say: > > >ID Gender Age Rate > A Female 0-10 Good > A Male 0-10 Good > B Female 11-20 Bad > B Male 11-20 Bad > C Male >20 N/A > > > >When return the results indicate how many answers are from each ID, say for >gender, we have 2 female, and 1 from category A and 1 from category B??? >Thanks. > >Ye > > > > >On Thu, Apr 18, 2013 at 4:04 PM, arun <smartpink...@yahoo.com> wrote: > >Hi, >>Try this: >>Assuming that "table" is "data.frame" >> >> >>dat1<-read.table(text=" >> >>Gender Age Rate >>Female 0-10 Good >>Male 0-10 Good >>Female 11-20 Bad >>Male 11-20 Bad >>Male >20 N/A >>",sep="",header=TRUE,stringsAsFactors=FALSE,na.strings="N/A") >>lapply(seq_len(ncol(dat1)),function(i) >>{x1<-as.data.frame(table(dat1[,i],useNA="always"));colnames(x1)[2]<-colnames(dat1)[i];x1}) >>#[[1]] >> # Var1 Gender >>#1 Female 2 >>#2 Male 3 >>#3 <NA> 0 >> >>#[[2]] >> # Var1 Age >>#1 0-10 2 >>#2 11-20 2 >>#3 >20 1 >>#4 <NA> 0 >> >>#[[3]] >> # Var1 Rate >>#1 Bad 2 >>#2 Good 2 >>#3 <NA> 1 >>A.K. >> >> >> >> >>----- Original Message ----- >>From: Ye Lin <ye...@lbl.gov> >>To: R help <r-help@r-project.org> >>Cc: >>Sent: Thursday, April 18, 2013 6:46 PM >>Subject: [R] count each answer category in each column >> >>Hey, >> >>Is it possible that R can calculate each options under each column and >>return a summary table? >> >>Suppose I have a table like this: >> >>Gender Age Rate >>Female 0-10 Good >>Male 0-10 Good >>Female 11-20 Bad >>Male 11-20 Bad >>Male >20 N/A >> >>I want to have a summary table including the information that how many >>answers in each category, sth like this: >> >> X Gender >>Male 3 >>Female 2 >>N/A 0 >> >> X Age >>0-10 2 >>11-20 2 >>>20 1 >>N/A 0 >> >>X Rate >>Good 2 >>Bad 2 >>N/A 1 >> >>So basically I want to calculate, in each column, how many people choose >>each answer, including N/A. I know I can do it in Excel in a very >>visualized way, but is there anyway to do it in R in a robust way if I have >>a fairly large dataset. >> >>Thanks! >> >> [[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. >> >> > ______________________________________________ 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.