Giter Club home page Giter Club logo

Comments (1)

Rekyt avatar Rekyt commented on May 31, 2024

For the record this is the behavior with all indices:

library("fundiversity")

site_sp_birds[, 1:2]
#>           Aburria_aburri Amazona_farinosa
#> elev_250               0                1
#> elev_500               0                1
#> elev_1000              1                1
#> elev_1500              1                0
#> elev_2000              0                0
#> elev_2500              0                0
#> elev_3000              0                0
#> elev_3500              0                0

# Compute indices with only a subset of species
fd_fdis(traits_birds, site_sp_birds[, 1:2])
#> Differing number of species between trait dataset and site-species matrix
#> Taking subset of species
#>        site     FDis
#> 1  elev_250   0.0000
#> 2  elev_500   0.0000
#> 3 elev_1000 390.7748
#> 4 elev_1500   0.0000
#> 5 elev_2000   0.0000
#> 6 elev_2500   0.0000
#> 7 elev_3000   0.0000
#> 8 elev_3500   0.0000

fd_fdiv(traits_birds, site_sp_birds[, 1:2])
#> Differing number of species between trait dataset and site-species matrix
#> Taking subset of species
#>        site FDiv
#> 1  elev_250  NaN
#> 2  elev_500  NaN
#> 3 elev_1000    1
#> 4 elev_1500  NaN
#> 5 elev_2000    0
#> 6 elev_2500    0
#> 7 elev_3000    0
#> 8 elev_3500    0

fd_feve(traits_birds, site_sp_birds[, 1:2])
#> Differing number of species between trait dataset and site-species matrix
#> Taking subset of species
#>        site FEve
#> 1  elev_250   NA
#> 2  elev_500   NA
#> 3 elev_1000   NA
#> 4 elev_1500   NA
#> 5 elev_2000   NA
#> 6 elev_2500   NA
#> 7 elev_3000   NA
#> 8 elev_3500   NA

fd_fric_intersect(traits_birds, site_sp_birds[, 1:2])
#> Differing number of species between trait dataset and site-species matrix
#> Taking subset of species
#>    first_site second_site FRic_intersect
#> 1    elev_250    elev_500             NA
#> 2    elev_250   elev_1000             NA
#> 3    elev_250   elev_1500             NA
#> 4    elev_250   elev_2000             NA
#> 5    elev_250   elev_2500             NA
#> 6    elev_250   elev_3000             NA
#> 7    elev_250   elev_3500             NA
#> 8    elev_500   elev_1000             NA
#> 9    elev_500   elev_1500             NA
#> 10   elev_500   elev_2000             NA
#> 11   elev_500   elev_2500             NA
#> 12   elev_500   elev_3000             NA
#> 13   elev_500   elev_3500             NA
#> 14  elev_1000   elev_1500             NA
#> 15  elev_1000   elev_2000             NA
#> 16  elev_1000   elev_2500             NA
#> 17  elev_1000   elev_3000             NA
#> 18  elev_1000   elev_3500             NA
#> 19  elev_1500   elev_2000             NA
#> 20  elev_1500   elev_2500             NA
#> 21  elev_1500   elev_3000             NA
#> 22  elev_1500   elev_3500             NA
#> 23  elev_2000   elev_2500             NA
#> 24  elev_2000   elev_3000             NA
#> 25  elev_2000   elev_3500             NA
#> 26  elev_2500   elev_3000             NA
#> 27  elev_2500   elev_3500             NA
#> 28  elev_3000   elev_3500             NA
#> 29   elev_250    elev_250             NA
#> 30   elev_500    elev_500             NA
#> 31  elev_1000   elev_1000             NA
#> 32  elev_1500   elev_1500             NA
#> 33  elev_2000   elev_2000             NA
#> 34  elev_2500   elev_2500             NA
#> 35  elev_3000   elev_3000             NA
#> 36  elev_3500   elev_3500             NA

fd_fric(traits_birds, site_sp_birds[, 1:2])
#> Differing number of species between trait dataset and site-species matrix
#> Taking subset of species
#>        site FRic
#> 1  elev_250   NA
#> 2  elev_500   NA
#> 3 elev_1000   NA
#> 4 elev_1500   NA
#> 5 elev_2000   NA
#> 6 elev_2500   NA
#> 7 elev_3000   NA
#> 8 elev_3500   NA

fd_raoq(traits_birds, site_sp_birds[, 1:2])
#> Differing number of species between trait dataset and site-species matrix
#> Taking subset of species
#>        site        Q
#> 1  elev_250   0.0000
#> 2  elev_500   0.0000
#> 3 elev_1000 390.7748
#> 4 elev_1500   0.0000
#> 5 elev_2000   0.0000
#> 6 elev_2500   0.0000
#> 7 elev_3000   0.0000
#> 8 elev_3500   0.0000

Created on 2022-11-15 with reprex v2.0.2

Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.2.0 (2022-04-22 ucrt)
#>  os       Windows 10 x64 (build 19042)
#>  system   x86_64, mingw32
#>  ui       RTerm
#>  language (EN)
#>  collate  fr_FR.UTF-8
#>  ctype    fr_FR.UTF-8
#>  tz       Europe/Berlin
#>  date     2022-11-15
#>  pandoc   2.19.2 @ C:/Program Files/RStudio/bin/quarto/bin/tools/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package      * version    date (UTC) lib source
#>  abind          1.4-5      2016-07-21 [1] CRAN (R 4.2.0)
#>  cachem         1.0.6      2021-08-19 [1] CRAN (R 4.2.0)
#>  cli            3.4.1      2022-09-23 [1] CRAN (R 4.2.1)
#>  codetools      0.2-18     2020-11-04 [1] CRAN (R 4.2.0)
#>  digest         0.6.30     2022-10-18 [1] CRAN (R 4.2.0)
#>  evaluate       0.18       2022-11-07 [1] CRAN (R 4.2.2)
#>  fastmap        1.1.0      2021-01-25 [1] CRAN (R 4.2.0)
#>  fs             1.5.2      2021-12-08 [1] CRAN (R 4.2.0)
#>  fundiversity * 1.0.0.9000 2022-11-11 [1] local
#>  future         1.29.0     2022-11-06 [1] CRAN (R 4.2.0)
#>  future.apply   1.10.0     2022-11-05 [1] CRAN (R 4.2.2)
#>  geometry       0.4.6.1    2022-07-04 [1] CRAN (R 4.2.0)
#>  globals        0.16.1     2022-08-28 [1] CRAN (R 4.2.1)
#>  glue           1.6.2      2022-02-24 [1] CRAN (R 4.2.0)
#>  highr          0.9        2021-04-16 [1] CRAN (R 4.2.0)
#>  htmltools      0.5.3      2022-07-18 [1] CRAN (R 4.2.0)
#>  knitr          1.40       2022-08-24 [1] CRAN (R 4.2.1)
#>  lattice        0.20-45    2021-09-22 [1] CRAN (R 4.2.0)
#>  lifecycle      1.0.3      2022-10-07 [1] CRAN (R 4.2.1)
#>  listenv        0.8.0      2019-12-05 [1] CRAN (R 4.2.0)
#>  magic          1.6-0      2022-02-09 [1] CRAN (R 4.2.0)
#>  magrittr       2.0.3      2022-03-30 [1] CRAN (R 4.2.0)
#>  Matrix         1.5-1      2022-09-13 [1] CRAN (R 4.2.1)
#>  memoise        2.0.1      2021-11-26 [1] CRAN (R 4.2.0)
#>  parallelly     1.32.1     2022-07-21 [1] CRAN (R 4.2.1)
#>  purrr          0.3.5      2022-10-06 [1] CRAN (R 4.2.1)
#>  R.cache        0.16.0     2022-07-21 [1] CRAN (R 4.2.1)
#>  R.methodsS3    1.8.2      2022-06-13 [1] CRAN (R 4.2.0)
#>  R.oo           1.25.0     2022-06-12 [1] CRAN (R 4.2.0)
#>  R.utils        2.12.2     2022-11-11 [1] CRAN (R 4.2.0)
#>  Rcpp           1.0.9      2022-07-08 [1] CRAN (R 4.2.1)
#>  reprex         2.0.2      2022-08-17 [1] CRAN (R 4.2.1)
#>  rlang          1.0.6.9000 2022-10-11 [1] Github (r-lib/rlang@28a40b5)
#>  rmarkdown      2.18       2022-11-09 [1] CRAN (R 4.2.2)
#>  rstudioapi     0.14       2022-08-22 [1] CRAN (R 4.2.1)
#>  sessioninfo    1.2.2      2021-12-06 [1] CRAN (R 4.2.0)
#>  stringi        1.7.8      2022-07-11 [1] CRAN (R 4.2.1)
#>  stringr        1.4.1      2022-08-20 [1] CRAN (R 4.2.1)
#>  styler         1.8.1      2022-11-07 [1] CRAN (R 4.2.2)
#>  withr          2.5.0      2022-03-03 [1] CRAN (R 4.2.0)
#>  xfun           0.34       2022-10-18 [1] CRAN (R 4.2.0)
#>  yaml           2.3.6      2022-10-18 [1] CRAN (R 4.2.0)
#> 
#>  [1] C:/Users/ke76dimu/Documents/R/R-4.2.0/library
#> 
#> ──────────────────────────────────────────────────────────────────────────────

It seems the behavior isn't consistent across indices. Also it is not consistent when there is no species or not enough. What should be our choice?

Should we return NA or 0?

For FDis, having no species or only one necessarily mean an FDis of 0, but could also be NA as we can't measure any kind of dissimilarity with less than two species.
For FDiv, because we have to compute the convex hull, it's has a volume of 0 with 0 species but is not computable as soon as we have 1 species.
FEve needs at least 3 species to get a minimum spanning tree.
FRic needs convex hull estimate which is impossible with 2 species but 4 traits.
Same for FRic_intersect.
For Rao's when having no or one species it's impossible to get dissimilarity as for FDis.

Should we issue messages or warnings to the user to warn when some sites return NAs?
What about unifying outputs across functions? Should we keep them like this or try to unify how they work?

The limitations outlined above should at least be in the documentation.

from fundiversity.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.