Próbuję napisać ogólną funkcję do obliczania prawdopodobieństw pokrycia dla oszacowania przedziałowego proporcji dwumianowych w R. Mam zamiar to zrobić dla różnych metod przedziału ufności, np. Wald, Clopper-Pearson, przedziały HPD dla różnych przeżyć.Parametr funkcji jako argument w funkcji R
Idealnie chciałbym, aby była jedna funkcja, która może przyjąć jako argument metodę, która powinna zostać użyta do obliczenia interwału. Moje pytanie: jak mogę włączyć funkcję jako argument w innej funkcji?
Jako przykład, dla dokładnej Cloppera-Pearsona przedziału I mają następujące funkcje:
# Coverage for Exact interval
ExactCoverage <- function(n) {
p <- seq(0,1,.001)
x <- 0:n
# value of dist
dist <- sapply(p, dbinom, size=n, x=x)
# interval
int <- Exact(x,n)
# indicator function
ind <- sapply(p, function(x) cbind(int[,1] <= x & int[,2] >= x))
list(coverage = apply(ind*dist, 2, sum), p = p)
}
przypadku Dokładna (x, n) jest funkcją tylko obliczyć odpowiedni odstęp. Chciałbym mieć
Coverage <- function(n, FUN, ...)
...
# interval
int <- FUN(...)
tak, że mam jedną funkcję do obliczania prawdopodobieństwa pokrycia zamiast odrębną funkcję pokrycia dla każdej metody obliczania przedziału. Czy istnieje standardowy sposób, aby to zrobić? Nie byłem w stanie znaleźć wytłumaczenia.
Dzięki, James
Możesz chcieć przeczytać https://github.com/hadle y/devtools/wiki/Functional-programming – hadley
Dzięki za przydatne łącze. – jatotterdell