1) tapply will work for quantile, but the syntax was a little off: try this

tapply(Cape $ ResponseTime, Cape $ Grid_ID, quantile, c(0.05, 0.95))

The fourth argument is additional parameters passed to the function
FUN which here is quantile. You could also do this
tapply(Cape $ ResponseTime, Cape $ Grid_ID, function(x) quantile(x,
c(0.05, 0.95)))

2) See 1

3) I can do it with the simplify2array() function but I would have
expected the simplify = T argument to tapply() to get the job done.
Let me look into that and get back to you -- I know for sapply()
simplify = T is what calls simplify2array() so I'm pondering.

Thanks for spending so much time on a well-crafted question,

Michael

PS -- An even easier way to send data via plain text is to use dput()
which creates code that can be directly pasted into an R session to
replicate your data. Super helpful for stuff like this


On Tue, Nov 15, 2011 at 2:54 PM, Kulpanowski, David
<dkulpanow...@leegov.com> wrote:
> Hi:
>
> Summary:
> I am trying to determine the 90th percentile of ambulance response times for 
> groups of data.
>
> Background:
> A fire chief would like to look at emergency response times at the 90th 
> percentile for 1 kilometer grids in Cape Coral, Florida. I have mapped out 
> ambulance response times on a GIS map. Then I superimpose a regularly-spaced 
> grid over the response times and spatially join the ambulance responses with 
> the grids. Therefore each emergency incident has a grid ID and a response 
> time. This is exported out as a text file and read into R.
>
> Using R I issue the command "tapply(Cape $ ResponseTime, Cape $ Grid_ID, 
> mean)" and this gives me the mean average of the response times for each 1 
> kilometer grid. This returns a result. It is not in the format I wanted but I 
> can work on that as soon as I get the percentile function working. I am 
> hoping to get a list which I can write to a text file so I can join the data 
> back into my GIS based on the Grid ID. For example:
>
> Grid_ID, MeanAverageResponseTime
> 1848, 450       (or some number)
> 1849, 470
> 1850, 389
> etc
> etc
>
> Problem:
> I am expecting that this command will give me the 90th percentile 
> "tapply(Cape, Cape $ Grid_ID, quantile(Cape $ ResponseTime, 0.9))". However 
> the error message that is returned is: "Error in match.fun(FUN)  : 
> 'quantile(Cape$Responsetime, 0.9)' is not a function, character or symbol.
> What I am hoping to get back is the following:
>
> Grid_ID, 90thPercentileResponseTime
> 1848, 430       (or some number)
> 1849, 441
> 1850, 360
> etc
> etc
> This would then be joined in my GIS map by the Grid_ID and I could then make 
> a map showing the variation of response times at the 90th percentile.
>
> I can't get past this error message.
> Question 1.) Why would tapply work for mean but not for quantile?
> Question 2.) What is the correct syntax?
> Question 3.) How do I get the results to look like a comma delimited list as 
> shown above?
>
> Snap shot of data to play with:
>
> Grid_ID, ResponseTime
> 1848, 429
> 1848, 122
> 1848, 366
> 1848, 311
> 1848, 337
> 1848, 245
> 1848, 127
> 1848, 596
> 1848, 356
> 1848, 239
> 1848, 159
> 1848, 366
> 1848, 457
> 1848, 145
> 1848, 198
> 1848,  68
> 1848, 224
> 1848, 226
> 1849, 592
> 1849, 424
> 1849, -52
> 1849, 196
> 1849, 194
> 1850, 351
> 1854, 316
> 1855, 650
> 1858, 628
> 1858, 466
> 1861, 133
> 1861, 137
> 1871, 359
> 1872, 580
> 1872, 548
> 1874, 469
>
> feel free to copy this raw data into a notepad text file. Name it "Cape.txt" 
> on your C: drive. Then in the R console I am using the following to read it 
> in:
> Cape <- read.table("C:/Cape.txt", sep=",", header=TRUE)
>
> thanks
>
> David Kulpanowski
> Database Analyst
> Lee County Public Safety
> PO Box 398
> Fort Myers, FL 33902
> (ph) 239-533-3962
> dkulpanow...@leegov.com
> Latitude 26.528843
> Longitude -81.861486
>
>
> Please note: Florida has a very broad public records law. Most written 
> communications to or from County Employees and officials regarding County 
> business are public records available to the public and media upon request. 
> Your email communication may be subject to public disclosure.
>
> Under Florida law, email addresses are public records. If you do not want 
> your email address released in response to a public records request, do not 
> send electronic mail to this entity.  Instead, contact this office by phone 
> or in writing.
>
> ______________________________________________
> 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.

Reply via email to