I have a 2 x 3 matrix called snp and I want to compute the following probability: choose(sum(snp[,1]), snp[1,1]) * choose(sum(snp[,2]), snp[1,2]) * choose(sum(snp[,3]), snp[1,3])/choose(sum(snp), sum(snp[1,])) but I keep getting Infs and NaNs. Is there a function that can do this in R? -- Thanks, Jim. [[alternative HTML version deleted]]
Windows XP R 2.12 I am trying to understand how I can take a subroutine (i.e. function) I have written in Fortran, and call the function in R. I need to know (1) where I should store the Fortran subroutine (2) how to prepare the function for use in R, and (3) how to load and call the function. There's a large literature that describes how to construct packages (including S Programming by Venables and Ripley, which I have referenced), but everything I have seen appears overly complex and generally geared to R running under Linux where as I run R under Windows XP. I want to put R functions and Fortran routines in a library so they can be easily accessed. If, for example, I write a subroutine in Fortran called sqrtvector (n, vector), I want to compile it (to a .dll ?) and then put it in a library so subsequently I can code y <= sqrtvector(nn, x) in my R programs. Thanks! John John David Sorkin M.D., Ph.D. Chief, Biostatistics and Informatics University of Maryland School of Medicine Division of Gerontology Baltimore VA Medical Center 10 North Greene Street GRECC (BT/18/GR) Baltimore, MD 21201-1524 (Phone) 410-605-7119 (Fax) 410-605-7913 (Please call phone number above prior to faxing) Confidentiality Statement: This email message, including any attachments, is for th...{{dropped:6}}
On 27-Oct-11 04:09:46, Jim Silverton wrote:> I have a 2 x 3 matrix called snp and I want to compute the following > probability: > > choose(sum(snp[,1]), snp[1,1]) * choose(sum(snp[,2]), snp[1,2]) * > choose(sum(snp[,3]), snp[1,3])/choose(sum(snp), sum(snp[1,])) > > but I keep getting Infs and NaNs. Is there a function that can do this > in R? > -- > Thanks, > Jim.Since 1/0 --> Inf, and 0/0 --> NaN, it seems likely that your data lead to zero denominators. However, true diagnosis needs to see what your data really are. What is a typical 2x3 matrix that gives such results? If this guess is correct, then no possible function in R can resolve the problem! For data where the problem does not arise, then you can of course write your own function to implement your code above for an arbitrary 2x3 matrix. Hoping this helps, Ted. -------------------------------------------------------------------- E-Mail: (Ted Harding) <ted.harding at wlandres.net> Fax-to-email: +44 (0)870 094 0861 Date: 27-Oct-11 Time: 07:32:30 ------------------------------ XFMail ------------------------------
On 11-10-27 12:09 AM, Jim Silverton wrote:> I have a 2 x 3 matrix called snp and I want to compute the following > probability: > > choose(sum(snp[,1]), snp[1,1]) * choose(sum(snp[,2]), snp[1,2]) * > choose(sum(snp[,3]), snp[1,3])/choose(sum(snp), sum(snp[1,])) > > but I keep getting Infs and NaNs. Is there a function that can do this in R? > > >Work in the log scale. You're probably getting overflows. lchoose() calculates the log of choose(). Duncan Murdoch