From an abundance/presence-absence matrix or data.frame tells if it contains relative abundances or absolute abundances. Checks if all abundances are between 1 and 0 but never checks sum of abundances per community.
is_relative(given_obj, abund = NULL)
abundance or presence-absence matrix, with sites in rows and species in columns, or tidy community data frame
name of the column of the provided object that contains the abundances
TRUE
if the input has relative abundances FALSE
otherwise
make_relative()
to transform matrix into a relative abundance
matrix.
data("aravo", package = "ade4")
# Site-species matrix
mat = as.matrix(aravo$spe)
head(mat)[, 1:5] # Has absolute abundances
#> Agro.rupe Alop.alpi Anth.nipp Heli.sede Aven.vers
#> AR07 0 0 0 0 0
#> AR71 0 0 0 0 0
#> AR26 3 0 1 0 1
#> AR54 0 0 0 2 0
#> AR60 0 0 0 0 0
#> AR70 0 0 0 0 0
rel_mat = make_relative(mat)
head(rel_mat) # Relative abundances
#> Agro.rupe Alop.alpi Anth.nipp Heli.sede Aven.vers Care.rosa Care.foet
#> AR07 0.00000000 0 0.00000000 0.00000000 0.00000000 0.06666667 0
#> AR71 0.00000000 0 0.00000000 0.00000000 0.00000000 0.08695652 0
#> AR26 0.08108108 0 0.02702703 0.00000000 0.02702703 0.05405405 0
#> AR54 0.00000000 0 0.00000000 0.08695652 0.00000000 0.08695652 0
#> AR60 0.00000000 0 0.00000000 0.00000000 0.00000000 0.00000000 0
#> AR70 0.00000000 0 0.00000000 0.00000000 0.00000000 0.09375000 0
#> Care.parv Care.rupe Care.semp Fest.laev Fest.quad Fest.viol Kobr.myos
#> AR07 0.00000000 0.20000 0.00000000 0 0.13333333 0.00000000 0.06666667
#> AR71 0.04347826 0.00000 0.00000000 0 0.00000000 0.00000000 0.13043478
#> AR26 0.00000000 0.00000 0.02702703 0 0.08108108 0.02702703 0.10810811
#> AR54 0.00000000 0.00000 0.00000000 0 0.04347826 0.00000000 0.04347826
#> AR60 0.00000000 0.00000 0.00000000 0 0.23076923 0.07692308 0.07692308
#> AR70 0.03125000 0.03125 0.00000000 0 0.00000000 0.00000000 0.12500000
#> Luzu.lute Poa.alpi Poa.supi Sesl.caer Alch.pent Alch.glau Alch.vulg
#> AR07 0.00000000 0.06666667 0 0.00000000 0 0.00000000 0
#> AR71 0.00000000 0.08695652 0 0.00000000 0 0.00000000 0
#> AR26 0.02702703 0.00000000 0 0.00000000 0 0.02702703 0
#> AR54 0.00000000 0.08695652 0 0.04347826 0 0.00000000 0
#> AR60 0.00000000 0.00000000 0 0.07692308 0 0.00000000 0
#> AR70 0.00000000 0.06250000 0 0.03125000 0 0.00000000 0
#> Andr.brig Ante.carp Ante.dioi Arni.mont Aste.alpi Bart.alpi Camp.sche
#> AR07 0 0.00000000 0 0 0 0.00000000 0.00000000
#> AR71 0 0.04347826 0 0 0 0.04347826 0.04347826
#> AR26 0 0.02702703 0 0 0 0.00000000 0.02702703
#> AR54 0 0.00000000 0 0 0 0.00000000 0.04347826
#> AR60 0 0.00000000 0 0 0 0.00000000 0.07692308
#> AR70 0 0.03125000 0 0 0 0.03125000 0.03125000
#> Card.alpi Cera.stri Cera.cera Leuc.alpi Cirs.acau Drab.aizo Drya.octo
#> AR07 0 0.00000 0 0 0 0.00000000 0.00000000
#> AR71 0 0.00000 0 0 0 0.00000000 0.04347826
#> AR26 0 0.00000 0 0 0 0.00000000 0.00000000
#> AR54 0 0.00000 0 0 0 0.04347826 0.00000000
#> AR60 0 0.00000 0 0 0 0.00000000 0.00000000
#> AR70 0 0.03125 0 0 0 0.00000000 0.03125000
#> Erig.unif Gent.camp Gent.acau Gent.vern Geum.mont Omal.supi Andr.vita
#> AR07 0.00000000 0 0.00000000 0.00000000 0.00000000 0 0.00000000
#> AR71 0.00000000 0 0.00000000 0.00000000 0.00000000 0 0.00000000
#> AR26 0.02702703 0 0.02702703 0.02702703 0.05405405 0 0.00000000
#> AR54 0.04347826 0 0.00000000 0.04347826 0.00000000 0 0.00000000
#> AR60 0.00000000 0 0.00000000 0.07692308 0.00000000 0 0.07692308
#> AR70 0.00000000 0 0.00000000 0.00000000 0.00000000 0 0.00000000
#> Hier.pili Homo.alpi Leon.pyre Ligu.muto Lloy.sero Minu.sedo Minu.vern
#> AR07 0 0.00000 0 0.00000000 0.00000000 0.06666667 0.06666667
#> AR71 0 0.00000 0 0.04347826 0.04347826 0.00000000 0.00000000
#> AR26 0 0.00000 0 0.00000000 0.00000000 0.00000000 0.02702703
#> AR54 0 0.00000 0 0.04347826 0.00000000 0.00000000 0.04347826
#> AR60 0 0.00000 0 0.00000000 0.00000000 0.00000000 0.07692308
#> AR70 0 0.03125 0 0.06250000 0.03125000 0.00000000 0.00000000
#> Phyt.orbi Plan.alpi Poly.vivi Pote.aure Pote.cran Pote.gran Puls.vern
#> AR07 0 0 0.06666667 0.00000000 0.00000000 0 0.00000000
#> AR71 0 0 0.04347826 0.00000000 0.00000000 0 0.00000000
#> AR26 0 0 0.02702703 0.05405405 0.02702703 0 0.05405405
#> AR54 0 0 0.00000000 0.00000000 0.00000000 0 0.00000000
#> AR60 0 0 0.07692308 0.00000000 0.00000000 0 0.00000000
#> AR70 0 0 0.03125000 0.00000000 0.00000000 0 0.00000000
#> Ranu.kuep Sagi.glab Sali.herb Sali.reti Sali.retu Sali.serp Saxi.pani
#> AR07 0 0 0 0.00000000 0.00000000 0.00000000 0.06666667
#> AR71 0 0 0 0.04347826 0.08695652 0.04347826 0.00000000
#> AR26 0 0 0 0.00000000 0.00000000 0.00000000 0.00000000
#> AR54 0 0 0 0.00000000 0.00000000 0.00000000 0.08695652
#> AR60 0 0 0 0.00000000 0.00000000 0.00000000 0.07692308
#> AR70 0 0 0 0.06250000 0.06250000 0.00000000 0.03125000
#> Sedu.alpe Semp.mont Sene.inca Sibb.proc Sile.acau Thym.poly Vero.alpi
#> AR07 0 0.00000000 0 0 0.06666667 0.00000000 0
#> AR71 0 0.04347826 0 0 0.04347826 0.00000000 0
#> AR26 0 0.02702703 0 0 0.02702703 0.00000000 0
#> AR54 0 0.04347826 0 0 0.00000000 0.08695652 0
#> AR60 0 0.00000000 0 0 0.00000000 0.00000000 0
#> AR70 0 0.03125000 0 0 0.06250000 0.00000000 0
#> Vero.alli Vero.bell Myos.alpe Tara.alpi Scab.luci Anth.alpe Oxyt.camp
#> AR07 0 0.00000000 0.00000000 0 0.00000000 0.00000000 0.06666667
#> AR71 0 0.00000000 0.00000000 0 0.00000000 0.04347826 0.00000000
#> AR26 0 0.00000000 0.02702703 0 0.02702703 0.00000000 0.02702703
#> AR54 0 0.04347826 0.04347826 0 0.00000000 0.00000000 0.00000000
#> AR60 0 0.00000000 0.00000000 0 0.00000000 0.00000000 0.00000000
#> AR70 0 0.03125000 0.00000000 0 0.00000000 0.00000000 0.00000000
#> Oxyt.lapp Lotu.alpi Trif.alpi Trif.badi Trif.thal
#> AR07 0.06666667 0 0 0 0
#> AR71 0.04347826 0 0 0 0
#> AR26 0.00000000 0 0 0 0
#> AR54 0.04347826 0 0 0 0
#> AR60 0.07692308 0 0 0 0
#> AR70 0.03125000 0 0 0 0
# Forced to use ':::' becasue function is not exported
funrar:::is_relative(mat) # FALSE
#> [1] FALSE
funrar:::is_relative(rel_mat) # TRUE
#> [1] TRUE