Chciałbym ponownie użyć kodu R z pakietu stats
, który symuluje tabele kontyngencji, aby obliczyć symulowany p.value
dla testu chi-kwadrat.Jak wywołać wewnętrzną funkcję R C z własnego kodu
Patrząc na kod źródłowy chisq.test
funkcji, można znaleźć w następujących miejscach:
if (simulate.p.value && all(sr > 0) && all(sc > 0)) {
setMETH()
tmp <- .Call(C_chisq_sim, sr, sc, B, E)
STATISTIC <- sum(sort((x - E)^2/E, decreasing = TRUE))
PARAMETER <- NA
PVAL <- (1 + sum(tmp >= almost.1 * STATISTIC))/(B +
1)
}
Ciekawa linia jest tu .Call
wezwanie:
tmp <- .Call(C_chisq_sim, sr, sc, B, E)
Co chciałbym zrobić, jeśli jest to możliwe, należy użyć tej funkcji C_chisq_sim
w moim własnym kodzie, ale nie mogę tego zrobić. Jeśli spróbuję z:
tmp <- .Call(C_chisq_sim, sr, sc, B, E, PACKAGE="stats")
Otrzymuję błąd C_chisq_sim object not found
. A jeśli spróbuję z:
tmp <- .Call("C_chisq_sim", sr,sc,B,E, PACKAGE="stats")
Pojawia się błąd informujący, że punkt wejścia nie znajduje się w tabeli ładowania.
Chciałbym rozwiązanie, które byłoby wieloplatformowe, jeśli to możliwe.
Ah, tak, to działa! Wielkie dzięki ! – juba
Jak to jest możliwe bez uciekania się do ':::' (a tym samym unikania gniewu CRAN)? – Henrik