Как использовать na.rm в R (с примерами)


Вы можете использовать аргумент na.rm = TRUE , чтобы исключить пропущенные значения при расчете описательной статистики в 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 )

В следующих примерах показано, как использовать этот аргумент на практике как с векторами, так и с фреймами данных.

Пример 1: Использование na.rm с векторами

Предположим, мы пытаемся вычислить среднее значение, сумму, максимум и стандартное отклонение для следующего вектора в R, который содержит некоторые пропущенные значения:

#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

Каждая из этих функций возвращает значение NA .

Чтобы исключить пропущенные значения при выполнении этих вычислений, мы можем просто включить аргумент na.rm = TRUE следующим образом:

#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

Обратите внимание, что мы смогли успешно завершить каждый расчет, исключив пропущенные значения.

Пример 2: Использование na.rm с фреймами данных

Предположим, у нас есть следующий фрейм данных в R, который содержит некоторые пропущенные значения:

#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

Мы можем использовать функцию apply() для вычисления описательной статистики для каждого столбца во фрейме данных и использовать аргумент na.rm = TRUE для исключения пропущенных значений при выполнении этих вычислений:

#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

И снова мы смогли успешно завершить каждый расчет, исключив пропущенные значения.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи с отсутствующими значениями в R:

Как использовать is.null в R
Как использовать na.omit в R
Как использовать is.na в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.