Hello
        I have a time-comsuming program which need to simplify, I have tested 
the annotated program as follow:

> #define function which will be call

> calsta <- function(c, n=100000) 
+ { 
+   i <- seq(from=0, length=c) 
+   logx <- lchoose(NT-n, CT-i) + lchoose(n, i) 
+   logmax <- max(logx) 
+   logmax + log(sum(exp(logx - logmax))) 
+ } 
> CT=6000       #assignment to CT
> NT=29535210   #assignment to NT
> 
> vec<-c(2331,524,918,218,1100,547,289,1167,450,1723)
> vec
 [1] 2331  524  918  218 1100  547  289 1167  450 1723
> vec<-rep(vec,1000)#replicate the vec 1000 times
> length(vec)
[1] 10000 

> #then I'd like to make vector "vec" call function calsta element-wise
> #and save the output to vector "result"

> system.time(result<-sapply(vec,calsta))
   user  system elapsed 
  26.45    0.03   26.70 
> 
> system.time(for (i in 1:10000) result[i]=calsta(vec[i]))
   user  system elapsed 
  27.74    0.14   28.94 

I have about  300,000 such 26.70/ 28.94 seconds, so the approximate computation 
time is 100 days
What a terrible thing to do!!!
Any modification, nomatter how subtle, will be a big help for me

Thank you in advance

Yours sincerely
 



ZhaoXing
Department of Health Statistics
West China School of Public Health
Sichuan University
No.17 Section 3, South Renmin Road
Chengdu, Sichuan 610041
P.R.China

__________________________________________________
¸Ï¿ì×¢²áÑÅ»¢³¬´óÈÝÁ¿Ãâ·ÑÓÊÏä?

______________________________________________
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