David:

You need to re-read ?tapply _carefully_.  Note that:

FUN   the function to be applied, or NULL. In the case of functions
like +, %*%, etc., the function name must be backquoted or quoted.

Now note that in tapply(whatever, byfactor,  mean),   "mean" _is_ a function.
However in tapply (whatever,byfactor,  quantile(something, .9) )
"quantile(something, .9)" is not a function -- it's a function _call_
.

So correct syntax would be:

tapply(whatever, byfactor, quantile, probs=.9)  ## probs is a "..."  argument

Alternatively, using anonymous functions, you could do:

tapply(whatever, byfactor, function(x)quantile(x, probs=.9))

where unnamed ("anonymous") function has been written in place for the
FUN argument of tapply.

Cheers,
Bert

On Tue, Nov 15, 2011 at 11:54 AM, 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.



--

Bert Gunter
Genentech Nonclinical Biostatistics

Internal Contact Info:
Phone: 467-7374
Website:
http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm

______________________________________________
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