Come utilizzare na.rm in r (con esempi)
È possibile utilizzare l’argomento na.rm=TRUE per escludere i valori mancanti durante il calcolo delle statistiche descrittive in R.
#calculate mean and exclude missing values mean(x, na. rm = TRUE ) #calculate sum and exclude missing values sum(x, na. rm = TRUE ) #calculate maximum and exclude missing values max(x, na. rm = TRUE ) #calculate standard deviation and exclude missing values sd(x, na. rm = TRUE )
Gli esempi seguenti mostrano come utilizzare questo argomento nella pratica con vettori e frame di dati.
Esempio 1: utilizzo di na.rm con i vettori
Supponiamo di provare a calcolare la media, la somma, il massimo e la deviazione standard del seguente vettore in R che contiene valori mancanti:
#define vector with some missing values
x <- c(3, 4, 5, 5, 7, NA, 12, NA, 16)
mean(x)
[1] NA
sum(x)
[1] NA
max(x)
[1] NA
sd(x)
[1] NA
Ognuna di queste funzioni restituisce un valore di NA .
Per escludere valori mancanti durante l’esecuzione di questi calcoli, possiamo semplicemente includere l’argomento na.rm = TRUE come segue:
#define vector with some missing values x <- c(3, 4, 5, 5, 7, NA, 12, NA, 16) mean(x, na. rm = TRUE ) [1] 7.428571 sum(x, na. rm = TRUE ) [1] 52 max(x, na. rm = TRUE ) [1] 16 sd(x, na. rm = TRUE ) [1] 4.790864
Tieni presente che siamo stati in grado di eseguire ogni calcolo con successo escludendo i valori mancanti.
Esempio 2: utilizzo di na.rm con frame di dati
Supponiamo di avere il seguente frame di dati in R che contiene valori mancanti:
#create data frame df <- data. frame (var1=c(1, 3, 3, 4, 5), var2=c(7, 7, NA, 3, 2), var3=c(3, 3, NA, 6, 8), var4=c(1, 1, 2, 8, NA)) #view data frame df var1 var2 var3 var4 1 1 7 3 1 2 3 7 3 1 3 3 NA NA 2 4 4 3 6 8 5 5 2 8 NA
Possiamo utilizzare la funzione apply() per calcolare le statistiche descrittive per ciascuna colonna nel data frame e utilizzare l’argomento na.rm = TRUE per escludere i valori mancanti durante l’esecuzione di questi calcoli:
#calculate mean of each column
apply(df, 2, mean, na. rm = TRUE )
var1 var2 var3 var4
3.20 4.75 5.00 3.00
#calculate sum of each column
apply(df, 2, sum, na. rm = TRUE )
var1 var2 var3 var4
16 19 20 12
#calculate max of each column
apply(df, 2, max, na. rm = TRUE )
var1 var2 var3 var4
5 7 8 8
#calculate standard deviation of each column
apply(df, 2, sd, na. rm = TRUE )
var1 var2 var3 var4
1.483240 2.629956 2.449490 3.366502
Ancora una volta, siamo riusciti a completare ogni calcolo con successo escludendo i valori mancanti.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni con valori mancanti in R:
Come utilizzare is.null in R
Come utilizzare na.omit in R
Come usare is.na in R