Hi Bruce, >From your second email, I think you solved the problem. But, still there is >confusion due to the wordings. res1<-mutate(ddply(dat1,.(SPEC_CODE),function(x) colSums(x[,-c(1:3,6)])),RA=10*(AI/Survey_Time)) res1 SPEC_CODE Survey_Time AI RA 1 Buzz 72.8 8 1.0989011 2 Eumspp 24.3 5 2.0576132 3 Frag 12.1 18 14.8760331 4 Molmol 12.1 1 0.8264463 5 Molspp 72.8 28 3.8461538 6 Myokea 12.2 1 0.8196721 7 Nocalb 24.3 10 4.1152263 8 Phyllo 36.4 4 1.0989011 9 Ptedav 36.4 3 0.8241758 10 Ptegym 36.4 6 1.6483516 11 Ptepar 36.4 9 2.4725275 12 Pteper 24.3 4 1.6460905 13 Rhotum 36.4 30 8.2417582 14 Sacbil 36.4 11 3.0219780 15 Saclep 36.4 32 8.7912088
#or dat1$RA<-10*with(dat1,ave(AI,SPEC_CODE,FUN=sum))/with(dat1,ave(Survey_Time,SPEC_CODE,FUN=sum)) head(dat1) # Location_name SPEC_CODE Start_Day Survey_Time AI Std_AI RA #1 079-f2p1-Acetuna Buzz 2/14/2012 12.1 1 0.8264463 1.098901 #2 079-f2p1-Acetuna Buzz 2/14/2012 12.1 1 0.8264463 1.098901 #3 079-f2p1-Acetuna Eumspp 2/14/2012 12.1 1 0.8264463 2.057613 #4 079-f2p1-Acetuna Frag 2/14/2012 12.1 18 14.8760300 14.876033 #5 079-f2p1-Acetuna Molspp 2/14/2012 12.1 5 4.1322310 3.846154 #6 079-f2p1-Acetuna Molspp 2/14/2012 12.1 5 4.1322310 3.846154 ________________________________ From: Bruce Miller <batsnc...@gmail.com> To: arun <smartpink...@yahoo.com> Sent: Sunday, April 21, 2013 4:19 PM Subject: Re: [R] Reshape or Plyr? Hi Arun, This looks good; however the not quite correct yet. Looks like the mutate option may be a good place to start. Sorry I did not clearly explain this in my original query. For adjustment by unit effort I need the "Base AI per hour" summed for the location. Once I have that it can be standardized by 10 hours. An example for a single from your output #9 Ptedav 079-f2p1-Acetuna 36.4 3 12.1333333 121.333333 Is not the correct way to determine AI per hour. So total survey hours for a 3 nights is 36.4 then the AI value is 3 so the AI per hour for Ptedav would be3/36.4 = .08241 then standardized for 10 hours of survey time would be 0.824175824. Now I need to determine how to re-arrange your code to reflect the Summed AI/Summed survey time. res<- mutate(ddply(dat1,.(SPEC_CODE,Location_name),function(x) colSums(x[,-c(1:3,6)])),SumAIbySumST=Survey_Time/AI,Std.SumAIbySumST=10*SumAIbySumST) Thanks again for your input and help. Bruce ______________________________________________ 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.