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 <yelin at lbl.gov>
To: arun <smartpink111 at yahoo.com>
Sent: Friday, April 19, 2013 1:44 PM
Subject: Re: [R] count each answer category in each column
To: arun <smartpink111 at 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 <smartpink111 at 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 <yelin at lbl.gov>
>To: arun <smartpink111 at yahoo.com>
>Cc: R help <r-help at 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 <smartpink111 at 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 <yelin at lbl.gov>
>>To: R help <r-help at 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 at 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.
>>
>>
>