inbo / forrescalc

Calculation of aggregated values on dendrometry, regeneration and vegetation of forests, starting from individual tree measures from Fieldmap
https://inbo.github.io/forrescalc/
GNU General Public License v3.0
0 stars 0 forks source link

create_statistics and NA's #32

Closed leymanan closed 2 months ago

leymanan commented 4 years ago

Els, bij testen van create_statistics kwam ik erop uit dat als er één record NA is, het resultaat ook NA is. Zo bv. bij het berekenen van de gemiddelde herb layer coverage bij core area's: als er info van één subplot ontbreekt, wordt er geen gemiddelde berekend (eigenlijk wel, maar obv alle records/subplots - ook de NA's - met als resultaat een NA)

Toon heeft dat opgevangen in zijn code van de VBI. Alternatief is om op voorhand alle NA's uit de dataset te filteren vooraleer create_statistics toe te passen ....

Wat denk jij dat de beste benadering is? Ik heb nu in mijn code de NA's weggefilterd vooraleer ik create_statistics laat lopen

ElsLommelen commented 4 years ago

Ik zou evt. een parameter na_rm (equivalent aan na.rm in andere functies, maar conform onze stijlafspraken binnen INBO) kunnen toevoegen die default op false staat en door de gebruiker op true gezet kan worden. Dan gaat het wel een alles of niks zijn: ofwel bij alle velden die na_rm toepassen, ofwel bij geen enkel veld. Tenzij we de gebruiker ook de optie zouden geven om bij na_rm een vector in te geven met de variabelen waarvoor hij de NA-waarden wil verwijderen. Dus dan heeft de gebruiker 3 opties:

Ik weet niet of die derde optie logisch is en nodig is? Het biedt wel iets meer flexibiliteit om verschillende variabelen indien nodig anders te benaderen, maar het maakt het ook wat complexer om te begrijpen en gebruiken. Als dit maar zeer uitzonderlijk gebruikt wordt, kan een gebruiker dit ook oplossen door de functie tweemaal uit te voeren met een deel van de variabelen, en die resultaten aan elkaar te plakken.

Enfin, ik weet niet wat jij de beste optie vindt?

leymanan commented 4 years ago

ik zou opteren voor enkel TRUE en FALSE. Het gaat inderdaad te complex worden, en zoals je zegt kan men functie ook 2x laten lopen.

G A

Op di 25 aug. 2020 om 09:17 schreef ElsLommelen notifications@github.com:

Ik zou evt. een parameter na_rm (equivalent aan na.rm in andere functies, maar conform onze stijlafspraken binnen INBO) kunnen toevoegen die default op false staat en door de gebruiker op true gezet kan worden. Dan gaat het wel een alles of niks zijn: ofwel bij alle velden die na_rm toepassen, ofwel bij geen enkel veld. Tenzij we de gebruiker ook de optie zouden geven om bij na_rm een vector in te geven met de variabelen waarvoor hij de NA-waarden wil verwijderen. Dus dan heeft de gebruiker 3 opties:

  • na_rm = FALSE (default): zoals het nu is
  • na_rm = TRUE: NA's worden verwijderd voor alle variabelen (via parameter na.rm = TRUE bij de bereken-functies zelf, dus als voor een record een enkele variabele NA is, zal voor de andere variabelen dat record wel meetellen)
  • na_rm = c("herb_layer_coverage", "shrub_layer_coverage"): NA's worden verwijderd voor herb_layer_coverage en shrub_layer_coverage, maar bv. niet voor tree_layer_coverage (puur fictief voorbeeld, ik denk niet eens dat die variabelen bestaan)

Ik weet niet of die derde optie logisch is en nodig is? Het biedt wel iets meer flexibiliteit om verschillende variabelen indien nodig anders te benaderen, maar het maakt het ook wat complexer om te begrijpen en gebruiken. Als dit maar zeer uitzonderlijk gebruikt wordt, kan een gebruiker dit ook oplossen door de functie tweemaal uit te voeren met een deel van de variabelen, en die resultaten aan elkaar te plakken.

Enfin, ik weet niet wat jij de beste optie vindt?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/inbo/forrescalc/issues/32#issuecomment-679849854, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGKXN5CVVEVJWAXG3RYTTDDSCNQQLANCNFSM4QJUA76A .

--

Anja Leyman

Expert Cel Beheerplanning en Monitoring


Ik werk tijdelijk deeltijds (maandag, dinsdag, woensdagVM en donderdag).

Mails die mij op een andere dag bereiken, komen in de wachtrij. Sorry hiervoor.

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Vlaamse overheid

AGENTSCHAP NATUUR & BOS

Standplaats Instituut voor Natuur- en Bosonderzoek (INBO) Gaverstraat 4, 9500 Geraardsbergen T: 054 436 182 M: 0495 14 90 60 E-mail: anja.leyman@vlaanderen.be anja.leyman@lne.vlaanderen.be

www.natuurenbos.be http://www.natuurenbos.be/

De inhoud van dit bericht en eventuele bijlage(n) verbinden het Agentschap voor Natuur en Bos niet, zolang niet bevestigd door een geldig ondertekend document

ElsLommelen commented 3 years ago

Wat als alle records NA zijn? Als ik het strikt zou nemen en alle NA's verwijderen, zouden bepaalde plots (of opgegeven levels) in de dataset volledig verdwijnen. Ik heb ervoor gekozen om toch alle combinaties van de opgegeven levels en variabelen te behouden in het resultaat, en dus toch de NA output te geven voor deze records. (Achterliggende redenering: deze NA's achteraf wissen is voor een gebruiker minder moeilijk dan ze toevoegen als ze in de functie gewist zouden worden.) Geef gerust aan als je ze liever toch gewist zou hebben, dan pas ik het aan.