Telkens wanneer we NA in onze gegevens hebben, gebruikten we na.rm=TRUE om de juiste resultaten te krijgen voor gemiddelde, modus enz. Wat doet na.rm? Ik kon begrijpen dat rm voor verwijderen is, wat we zelfs gebruiken voor het verwijderen van variabelen. Maar waarom hebben we na in het klein geschreven? R is hoofdlettergevoelig? En wat doet de Booleaanse waarde TRUE hier?
Antwoord 1, autoriteit 100%
Argument na.rm
geeft een eenvoudige manier om ontbrekende waarden uit gegevens te verwijderen als ze zijn gecodeerd als NA
. In basis R is de standaard standaardwaarde FALSE
, wat betekent dat NA
‘s niet worden verwijderd.
Beschouw de volgende vector met 2 elementen, waarvan één een ontbrekende waarde.
x <- c(1, NA)
Wat is nu de gemiddelde waarde?
Moeten we alle niet-ontbrekende waarden optellen en delen door de volledige lengte, 2? Of moeten we delen door de lengte na verwijderingvan NA
‘s, slechts 1?
sum(x, na.rm = TRUE)/length(x)
#[1] 0.5
sum(x, na.rm = TRUE)/length(x[!is.na(x)])
#[1] 1
Als mean
wordt gebruikt, wordt dit laatste berekend.
mean(x, na.rm = TRUE)
#[1] 1
Antwoord 2, autoriteit 50%
na.rm
is een van de argumenten in een aantal functies (waarvan je enkele voorbeelden geeft). Om informatie te krijgen over de argumenten van een functie, voer je ?function
uit.
Bijvoorbeeld, met mean()
, draaiend:
?mean
geeft u de informatie die u zoekt:
na.rm: een logische waarde die aangeeft of NA-waarden moeten worden verwijderd voordat de berekening verder gaat.
Door dit argument een logische waarde (TRUE
of FALSE
) te geven, kiest u of u de NA’s wilt strippen of niet tijdens het uitvoeren van de functie. De standaard (ook gegeven door de mean()
documentatie) is FALSE
.
En ja: R is hoofdlettergevoelig.