[R] cdf

David Winsemius dwinsemius at comcast.net
Wed Oct 14 14:13:55 CEST 2009


On Oct 13, 2009, at 6:53 PM, Duncan Murdoch wrote:

> On 13/10/2009 6:43 PM, David Winsemius wrote:
>> On Oct 13, 2009, at 5:12 PM, maram salem wrote:
>>> Dear all,
>>> I have the cdf of the following power fuction distribution:
>>> F(y)=(y/350)^a               ,0<y<350,
>>> where " a " is some parameter with range a>0.
>>> I want to use it as the argument of the discretize function of  
>>> the  actuar package.
>>>
>>> So I think I need to define this function to R so that if I  
>>> entered  a=1, I get the following
>>> F(y)=(y/350)
>>> and if I entered a=4.5, I get the following
>>> F(y) =(y/350)^4.5
>>> ........... and so on
>>>
>>> I've tried
>>> a<-vector(mode="numeric",length=1)
>>> powercdf<-function(a,y)
>>> (y/350)^a
>>>
>>> But when I typed: powercdf(10,y)
>>> instead of getting : (y/350)^10     (which is what I want)
>>> I got : object y not found ??
>>>
>>> I want y to remain as it is, a continous variable, not for  
>>> example  seq(0,350).
>>> Thank you in advance.
>> If you want symbolic algebra then use a system designed for such.  
>> If  you invoke a function in R you need to give it arguments for   
>> evaluation  ... to numerical values.
>> If you want a function that returns a function, that is also  
>> possible.
>> > cdffn <- function(y, arg) return( function(y) {y^arg} )
>
> But don't do it like that.  If you do, you'll see things like this:
>
> > power <- 10
> > cdf10 <- cdffn(arg=power)  # don't need y as an argument.
> > power <- 1
> > cdf10(1:10)
> [1]  1  2  3  4  5  6  7  8  9 10
>
> See my other post for a correct implementation using force().

Thank you, Duncan. I had seen your post (after hitting "send") but had  
not realized how far out of itself a function might look for  
arguments. You did mention the crucial aspect of force but I didn't  
really get it until this further clue. Sometimes I'm a bit dense.

-- 
David

>
> Duncan Murdoch
>
>> > cdf10 <- cdffn(y, 10)
>> > cdf10(1:10)
>>  [1]           1        1024       59049     1048576      
>> 9765625     60466176   282475249  1073741824
>>  [9]  3486784401 10000000000
>> David Winsemius, MD
>> Heritage Laboratories
>> 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
Heritage Laboratories
West Hartford, CT




More information about the R-help mailing list