On 6/29/2006 7:38 AM, Sundar Dorai-Raj wrote:
> 
> przeszczepan wrote:
>> Hi,
>> 
>> I have got problems integrating the following function using "integrate": 
>> 
>> lambdat<-function(t){
>> tempT<-T[k,][!is.na(T[k,])]#available values from k-th row of matrix T
>> tempJ<-J[k,][!is.na(J[k,])]
>> 
>> hg<-length(tempT[tempT<=t & tempJ==0])#counts observations satisfing the 
>> conditions
>> ag<-length(tempT[tempT<=t & tempJ==1])
>> 
>> lambdaXY[hg+1,ag+1]#takes  values from a 10x10 matrix
>> }
>> 
>> I keep receiving this message:
>> 
>> 1: longer object length
>>         is not a multiple of shorter object length in: tempT <= t 
>> 2: longer object length
>>         is not a multiple of shorter object length in: tempT <= t & tempJ == 
>> 0 
>> 
>> What I suspect is that the "integrate" function submits the whole vector of 
>> points at which the integral is to be evaluated at once. For my function to 
>> be integrated it would rather have to be evaluated at each point after 
>> another in a loop of some kind.
>> 
> 
> You suspect correctly. Best to read ?integrate too.
> 
>> Can you think of a way to solve this problem without me having to write the 
>> integrating procedure from scratch (I have no idea about FORTRAN and this is 
>> what the "integrate" description refers to)?
>> 
> 
> Just put a "for"-loop in your function to iterate over t.

Or use Vectorize().

vlambdat <- Vectorize(lambdat)

should give a function that can be passed to integrate(), assuming that 
lambdat works when given a length 1 vector as input.

Duncan Murdoch


> 
>    n <- length(t)
>    hg <- ag <- vector("numeric", n)
>    for(i in seq(n)) {
>      hg[i] <- length(tempT[tempT <= t[i] & tempJ == 0])
>      ag[i] <- length(tempT[tempT <= t[i] & tempJ == 1])
>    }
> 
> I doubt this will work because integrate is expecting a vector of 
> n=length(t) from lambdat. The last line of the function returns a nxn 
> matrix. Please submit data to run the function plus your call to 
> integrate in any subsequent postings.
> 
> HTH,
> 
> --sundar
> 
>> Thank you.
>> 
>> Kind Regards,
>> Lukasz Szczepanski
>> Student
>> 
>> ______________________________________________
>> [email protected] mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
> 
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to