Learn R Programming

untb (version 1.7-7-1)

logkda: Etienne's K(D,A)

Description

Calculates Etienne's \(K(D,A)\) using a variety of different methods

Usage

logkda.R(a, use.brob=TRUE)
logkda.a11(a)
logkda.pari(a, numerical=TRUE, gp_binary = "gp")
logkda.polyn(a)
logkda(a, method="pari", ...)
logkda_pari_unix(a, numerical, pari_string, gp_binary)
logkda_pari_windows(a, numerical, pari_string)

Arguments

a

Count object

use.brob

In function logkda.R(), Boolean, with default TRUE meaning to use Brobdingnagian numbers for the calculation. This is slower but allows one to analyze larger datasets

numerical

Boolean, with default TRUE meaning to coerce to a numerical vector (thereby losing precision), and FALSE meaning to return the string produced by pari/gp

method

In function logkda(), a string specifying which method to use. Takes “R”, “a11”, or “pari”

pari_string,gp_binary

configuration variables (not intended to be changed by the user)

...

In function logkda(), further arguments which are passed to the other functions

Author

Robin K. S. Hankin; logkda() is an R transliteration of pari/gp code appearing in Etienne 2005 (supplementary online material) due to Chave.

Function logkda.polyn() provided by Francois Munoz.

Function .logkda.pari.windows() provided by Andrea Manica and Francois Munoz.

Details

The user should use function logkda(), which is a wrapper for the other functions. Note that the default method, pari, requires the pari/gp system to be installed. This is the preferred option because it is much faster than the other methods.

Functions logkda.R() and logkda.pari() calculate \(K(D,A)\) using the method appearing in Etienne (2005), supplementary online material; they use R and pari/gp respectively. Function logkda.a11 is a direct implementation of formula A11 in Etienne (2005). The formula is

$$ K(D,A)= \sum_{\left\{a_1,\ldots,a_S|\sum a_i=A\right\}} \prod_{i=1}^S\frac{ \overline{s}\left(n_i, a_i\right) \overline{s}\left(a_i, 1\right) }{ \overline{s}\left(n_i,1\right)}$$ where \(\overline{s}\left(n_i,a_i\right)\) are Stirling numbers of the first kind (see logS1).

Function logkda.pari() dispatches to either logkda_pari_unix() or logkda_pari_windows() but the windows function is not guaranteed to work.

References

R. S. Etienne 2005. “A New Sampling Formula for Neutral Biodiversity”. Ecology Letters, volume 8, pp253--260. doi: 10.111/j.1461-0248.2004.00717.x

C. Batut and K. Belabas and D. Bernardi and H. Cohen and M. Olivier 2000. “User's guide to PARI/GP”. http://www.parigp-home.de/

See Also

etienne,logS1

Examples

Run this code
a <- count(c(dogs=7,pigs=3,crabs=1,hogs=1,slugs=1))

if (FALSE) logkda(a)

logkda.R(a)
logkda.R(a, use.brob=FALSE)
logkda.a11(a)
# All four should be the same up to numerical errors

Run the code above in your browser using DataLab