[R] count each answer category in each column

arun smartpink111 at yahoo.com
Fri Apr 19 04:50:14 CEST 2013


If the format is not a problem, you could also use:

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)
res<-summary(dat1)
res
 #   Gender     Age      Rate  
 #Female:2   0-10 :2   Bad :2  
# Male  :3   11-20:2   Good:2  
 #           >20  :1   N/A :1  
library(stringr)
library(plyr)
res1<-mutate(data.frame(Categ=rep(c("Gender","Age","Rate"),c(2,3,3)),na.omit(str_split_fixed(str_trim(str_replace(res,":"," "))," ",2)),stringsAsFactors=FALSE),X2=as.numeric(X2))

 res1
#   Categ     X1 X2
#1 Gender Female  2
#2 Gender   Male  3
#3    Age   0-10  2
#4    Age  11-20  2
#5    Age    >20  1
#6   Rate    Bad  2
#7   Rate   Good  2
#8   Rate    N/A  1
A.K.




----- Original Message -----
From: arun <smartpink111 at yahoo.com>
To: Ye Lin <yelin at lbl.gov>
Cc: R help <r-help at r-project.org>
Sent: Thursday, April 18, 2013 7:04 PM
Subject: Re: [R] count each answer category in each column

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.



More information about the R-help mailing list