La siguiente rutina de VBA como la paso a Rstudio?

Public Function DM(Alfa, beta, numsin)
S = 0
For i = 1 To numsin
Y = WorksheetFunction.Gamma_Inv(Rdn, Alfa, 1 / beta)
S = S + Y
Next i
DM = S

End Function

I doubt that I understand your function correctly. I have never used VBA so I had to read the documentation on the Gamma_Inv() function. The key information is

If p = GAMMA_DIST(x,...), then GAMMA_INV(p,...) = x.

where Gamma_Dist is the gamma cumulative distribution. So Gamma_Inv() is the same as qgamma() in R .
I wrote two versions of your function. The first mimics the logic of your function. The second avoids the for loop. You do not define Rdn anywhere, so I assigned it outside of the function.

Calculating the cumulative sum of the constant x returned by Gamma_Inv() seems like a strange thing to do and that is why I doubt that I have understood your function.

DM <- function(Alfa, beta, numsin) {
  S <- 0
  for( i in 1:numsin) {
    Y <- qgamma(Rdn, Alfa, rate = beta)
    S = S + Y
  }
  return(S)
}

Rdn <- 0.6
DM(3,2,5)
#> [1] 7.763446

#Second version of the function
DM2 <- function(Alfa, beta, numsin) {
  qgamma(Rdn, Alfa, rate = beta) * numsin
}
DM2(3,2,5)
#> [1] 7.763446

Created on 2022-06-22 by the reprex package (v2.0.1)

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.