I am attempting to use the spp.est function of the package called "fossil" in RStudio. I have created a matrix called "akimiskibb" of abundance data with species as the columns and sites as the rows. When I try to use the function spp.est, I type this:
spp.est(akimiskibb, rand = 10, abund = TRUE, counter = FALSE, max.est = 'all')
The problem comes in because my abundance data has a lot of zeroes, so I get this error message:
Error in if (max(x) == 1) warning("cannot use incidence data for abundance-based analyses. If the data is incidence based, please run this function again with the option of 'abund=FALSE'") : missing value where TRUE/FALSE needed
This function has worked in the past with matrices with a lot of zeroes (which are also abundance data, not presence/absence). I don't know what I am doing wrong.
Has anyone experienced something similar and found a way around this?
Thank you,
Kayla
Data: matrix format:
*sp1 sp2 sp3 sp4 sp5 sp6 sp7 sp8 sp9 sp10 sp11 sp12 sp13 sp14 sp15 sp16 sp17
sample1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1
0 0
sample 2 0 0 0 1 0 0 1 25 7 0 18 12 0 0 0
1 1
sample3 0 0 0 0 0 0 0 3 0 0 3 1 0 0 0
5 4
sp18 sp19 sp20 sp21 sp22 sp23 sp24 sp25 sp26 sp27 sp28 sp29 sp30 sp31
sp32
sample1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
sample 2 1 0 1 0 0 0 0 0 0 0 0 3 2
0 3
sample3 0 0 1 0 0 11 0 0 0 0 0 0 0
0 1
sp33 sp34 sp35 sp36 sp37 sp38 sp39 sp40 sp41 sp42 sp43 X
sample1 0 0 0 0 0 0 0 0 0 0 0 NA
sample 2 0 0 3 2 1 0 0 1 8 0 0 NA
sample3 0 0 0 0 0 0 0 0 0 0 0 NA*
dput:
*structure(list(sp1 = c(0L, 0L, 0L), sp2 = c(0L, 0L, 0L), sp3 = c(0L,
0L, 0L), sp4 = c(0L, 1L, 0L), sp5 = c(0L, 0L, 0L), sp6 = c(0L,
0L, 0L), sp7 = c(0L, 1L, 0L), sp8 = c(1L, 25L, 3L), sp9 = c(0L,
7L, 0L), sp10 = c(0L, 0L, 0L), sp11 = c(0L, 18L, 3L), sp12 = c(0L,
12L, 1L), sp13 = c(0L, 0L, 0L), sp14 = c(0L, 0L, 0L), sp15 = c(1L,
0L, 0L), sp16 = c(0L, 1L, 5L), sp17 = c(0L, 1L, 4L), sp18 = c(0L,
1L, 0L), sp19 = c(0L, 0L, 0L), sp20 = c(0L, 1L, 1L), sp21 = c(0L,
0L, 0L), sp22 = c(0L, 0L, 0L), sp23 = c(0L, 0L, 11L), sp24 = c(0L,
0L, 0L), sp25 = c(0L, 0L, 0L), sp26 = c(0L, 0L, 0L), sp27 = c(0L,
0L, 0L), sp28 = c(0L, 0L, 0L), sp29 = c(0L, 3L, 0L), sp30 = c(0L,
2L, 0L), sp31 = c(0L, 0L, 0L), sp32 = c(0L, 3L, 1L), sp33 = c(0L,
0L, 0L), sp34 = c(0L, 0L, 0L), sp35 = c(0L, 3L, 0L), sp36 = c(0L,
2L, 0L), sp37 = c(0L, 1L, 0L), sp38 = c(0L, 0L, 0L), sp39 = c(0L,
0L, 0L), sp40 = c(0L, 1L, 0L), sp41 = c(0L, 8L, 0L), sp42 = c(0L,
0L, 0L), sp43 = c(0L, 0L, 0L), X = c(NA, NA, NA)), .Names = c("sp1",
"sp2", "sp3", "sp4", "sp5", "sp6", "sp7", "sp8", "sp9", "sp10",
"sp11", "sp12", "sp13", "sp14", "sp15", "sp16", "sp17", "sp18",
"sp19", "sp20", "sp21", "sp22", "sp23", "sp24", "sp25", "sp26",
"sp27", "sp28", "sp29", "sp30", "sp31", "sp32", "sp33", "sp34",
"sp35", "sp36", "sp37", "sp38", "sp39", "sp40", "sp41", "sp42",
"sp43", "X"), class = "data.frame", row.names = c("sample1",
"sample 2", "sample3"))*
packages used:
fossil (made in R version 3.4.4)
Version of R: R x64 3.4.1
OK, not familiar with this package so thank you for introducing it to me. Always great to see how R is being used in so many disciplines.
I see two issues with your applications. First, according to the
fossildocumentation forspp.est, your data needs to have your samples as columns and your species as rows. The second issue is the "species" X with theNAvalues. You need to get rid of these because the function can't handle them.Here's the code: