[R] Question regarding R plot

David Winsemius dwinsemius at comcast.net
Sat Apr 17 20:49:19 CEST 2010


On Apr 17, 2010, at 1:18 PM, David Winsemius wrote:

>
> On Apr 17, 2010, at 12:45 PM, Charles C. Berry wrote:
>
>> On Sat, 17 Apr 2010, Akito Y. Kawahara wrote:
>>
>>> Hi, I am new to R, and have a quick question regarding an R script
>>> that I received from a kind colleague.
>>>
>>> I am trying to determine the "peak" (maximum value) of the graph  
>>> that
>>> is plotted when executing the following. There is an input file  
>>> called
>>> "rates_values.txt" which begins as:
>>>
>>> rateValue
>>> 0.375693
>>> 0
>>> 1.71274
>>> 0
>>> 0
>>> 1.02832
>>> 0
>>> 0.16343
>>> 1.02349
>>> 0
>>> 0
>>> 1.47258
>>> 0.703522
>>> 0.390541
>>> 1.83415
>>>
>>>
>>>
>>> The script, below, must run with the rates_values.txt in the same  
>>> dir.
>>>
>>> #-------
>>> rates<-read.table("rates_values.txt",header=T)
>>> attach(rates)
>>> scores<-function(x){
>>> l<-length(rateValue)
>>> total<-0
>>> for(i in 1:l){
>>>  value<-16*rateValue[i]*rateValue[i]*x*exp(-4*rateValue[i]*x)
>>>  total<-total+value
>>> }
>>> return(total)
>>> }
>>>
>>>
>>> #-------
>>> #preparing the plot
>>> linewidth=3
>>> linetype=3
>>> color="blue"
>>> xvalue=0.5
>>>
>>> plot(scores,xvalue,0,type="n",font.axis=2,xlim=c(xvalue,0))
>>> curve 
>>> (scores 
>>> ,xvalue 
>>> ,add=TRUE,col=color,lty=linetype,lwd=linewidth,xlim=c(xvalue,0))
>
> I was a bit puzzled by these lines, since in most R plotting tasks  
> one uses plot(x, y, ...). So unless the task it to plot some inverse  
> function, then the arguments are reversed. Furthermore, scores was  
> defined above as a function of "x", and yet is being offered to plot  
> with no arguments. What is intended?

Thanks to Charles Berry for advising me that this is an acceptable, if  
somewhat obscure, usage of plot.function().

>
>
>>>
>>> #-------
>>>
>>> Can anyone help me figure out how to determine the peak (maximum
>>> "scores") value in the plot that is generated?

Perhaps this approximation would be effective:

 > max(scores(seq(0.5, 0, by=-0.001)))
[1] 11.67820


An alternate approach might be to calculate a smoothing function, but  
this seems to "work" in the sense of giving an answer that matches the  
results from Berry's suggestion:

 > optimise( scores, range(rateValue), maximum=TRUE )
$maximum
[1] 0.1830172

$objective
[1] 11.67820

>>
>>
>> Yes. Anyone who knows something called 'the calculus' could help.  
>> And they could point out that the 0's in the data really do not  
>> matter.
>>
>> If the 0's are real data that should influence the result, it seems  
>> there is something wrong with scores() and you might do well to get  
>> a consult from a statistician.
>>
>> If you are still determined to solve the problem as stated, see
>>
>> 	?optimise
>>
>>
>> Something like
>>
>> 	optimise( scores, range(rateValue), maximum=TRUE )
>>
>> should do it.
>>
>> HTH,
>>
>> Chuck
>>
>>
>> It should be about 11.7
>>> but I would like to get an exact value. This should be a relatively
>>> easy question, but I'm new to R, and what I have tried doesn't  
>>> seem to
>>> work.
>>>
>>> Thanks!
>>>
>>> ______________________________________________
>>> 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.
>>>
>>
>> Charles C. Berry                            (858) 534-2098
>>                                           Dept of Family/Preventive  
>> Medicine
>> E mailto:cberry at tajo.ucsd.edu	            UC San Diego
>> http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego  
>> 92093-0901
>>
>> ______________________________________________
>> 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.
>
> David Winsemius, MD
> West Hartford, CT
>
> ______________________________________________
> 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.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list