Hi ZhaoXing, without knowledge about the ultimate purpose of your calculations its quite difficult to give further hints.
best regards Am 11.02.2011 14:35, schrieb zhaoxing731: > Dear Eik > > What a great idea!!! Thank you so much for your colossal improvment > Yes, you have a unique eye on the numerical problem, I am worrying about > this problem right now, hope you could give me new idea again > > Hi, > you compute the same results for logx many times. So it is easier and > time saving tabulating all intermediate results. > smth. like > n<-100000 > CT=6000 #assignment to CT > NT=29535210 #assignment to NT > i <- 0:(n-1) > lookup<- lchoose(NT-n, CT-i) + lchoose(n, i) > lgmax<-cummax(lookup) > calsta2<-function(c) lgmax[c] + log(sum(exp(lookup[1:c] - lgmax[c]))) > should help for a start, but I think, you are running into numerical > troubles, since you are dealing with very high and low (on log scale) > numbers and calsta constantly returns 57003.6 for c>38 (the summands in > sum(exp(logx - logmax)) will become 0 for c>38). > #check > sapply(1:50,calsta2) > sapply(1:50,calsta) > hth > /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/ -- Eik Vettorazzi Institut für Medizinische Biometrie und Epidemiologie Universitätsklinikum Hamburg-Eppendorf Martinistr. 52 20246 Hamburg T ++49/40/7410-58243 F ++49/40/7410-57790 ______________________________________________ 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.