HI Greg,
Sorry, I misunderstand your question.
I am not sure whether it works with numSummary() from library(Rcmdr). 
You could use other ways, such as:
test<-read.table(text="
 id year incidents
 100    1        0
 101    1        1
 102    1        21
 100    1        27
 101    1        3
 102    1        12
 100    2        5
 101    2        5
 102    2        19
 100    2        10
 101    2        2
 102    2        12
 100    3        0
 101    3        0
 102    3        22
 100    3        14
 101    3        16
 102    3        13
 ",sep="",header=TRUE)

test1<-test
test1<-within(test1,{id<-factor(id);year<-factor(year)})
library(plyr)
ddply(test,.(id,year),summarise,mean=mean(incidents),sd=sd(incidents),n=length(incidents))
#or
by(test1$incidents,list(test1$id,test1$year),FUN=function(x) 
c(mean=mean(x),sd=sd(x),n=length(x)))
#or
with(test,aggregate(incidents,by=list(id,year),function(x) 
c(mean=mean(x),sd=sd(x),n=length(x))))
#or
library(data.table)
test1<- data.table(test)
test1[,list(mean=mean(incidents),sd=sd(incidents),n=length(incidents)),by=list(id,year)]

library(psych)
res<-describeBy(test[,3],group=list(test$id,test$year),mat=FALSE)
res
#: 100
#: 1
#  var n mean    sd median trimmed   mad min max range skew kurtosis   se
#1   1 2 13.5 19.09   13.5    13.5 20.02   0  27    27    0    -2.75 13.5
#------------------------------------------------------------ 
#: 101
#: 1
#  var n mean   sd median trimmed  mad min max range skew kurtosis se
1   1 2    2 1.41      2       2 1.48   1   3     2    0    -2.75  1
------------------------------------------------------------------
A.K.





----- Original Message -----
From: "agr...@gmail.com" <agr...@gmail.com>
To: smartpink...@yahoo.com
Cc: 
Sent: Friday, December 28, 2012 6:09 PM
Subject: thanks -- Re: syntax for identifying more than one

Hi Arun,
Thanks for responding to my posted question.  Your example showed how to use 
numsummary to produce mean incidents, sd incidents, etc. for each level of "id" 
and for each level of "year."  I'm trying to generate these descriptive stats 
for each *combination* of "id" and "year."  I could do that in SAS with the 
following code 

proc means mean std n data=test;
  by id year;
  var incidents;
  output out = testsummary
      mean = mnincidents
      std = sdincidents
      n = nincidnets;
proc print data=testsummary;

Again, thanks for responding to the posted question.

Best wishes,
Greg


<quote author='arun kirshna'>
HI,
You could try that in a list if that is okay.
test<-read.table(text="
id year incidents
100    1        0
101    1        1
102    1        21
103    1        27
104    1        3
105    1        12
100    2        5
101    2        5
102    2        19
103    2        10
104    2        2
105    2        12
100    3        0
101    3        0
102    3        22
103    3        14
104    3        16
105    3        13
",sep="",header=TRUE)
library(e1071)
library(Rcmdr)

res<- lapply(seq_len(ncol(test[,-3])),function(i)
numSummary(test[,3],groups=test[,i]))
names(res)<-names(test)[-3]
res
$id
#         mean        sd IQR 0%  25% 50%  75% 100% data:n
#100  1.666667 2.8867513 2.5  0  0.0   0  2.5    5      3
#101  2.000000 2.6457513 2.5  0  0.5   1  3.0    5      3
#102 20.666667 1.5275252 1.5 19 20.0  21 21.5   22      3
#103 17.000000 8.8881944 8.5 10 12.0  14 20.5   27      3
#104  7.000000 7.8102497 7.0  2  2.5   3  9.5   16      3
#105 12.333333 0.5773503 0.5 12 12.0  12 12.5   13      3
#
#$year
#       mean        sd   IQR 0%  25%  50%   75% 100% data:n
#1 10.666667 11.325487 17.25  0 1.50  7.5 18.75   27      6
#2  8.833333  6.177918  6.50  2 5.00  7.5 11.50   19      6
#3 10.833333  8.953584 12.25  0 3.25 13.5 15.50   22      6
A.K.

</quote>
Quoted from: 
http://r.789695.n4.nabble.com/syntax-for-identifying-more-than-one-group-in-numsummary-tp4654172p4654185.html


______________________________________________
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.

Reply via email to