Как найти и подсчитать пропущенные значения в R (с примерами)


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

Метод 1: найти местонахождение пропущенных значений

which(is.na(df$column_name))

Метод 2: подсчитать общее количество пропущенных значений

sum(is.na(df$column_name))

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

Пример 1. Поиск и подсчет пропущенных значений в одном столбце

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

#create data frame
df <- data.frame(team=c('A', 'B', 'C', NA, 'E'),
 points=c(99, 90, 86, 88, 95),
 assists=c(NA, 28, NA, NA, 34),
 rebounds=c(30, 28, 24, 24, NA))

#view data frame
df

 team points assists rebounds
1 A 99 NA 30
2 B 90 28 28
3 C 86 NA 24
4 NA 88 NA 24
5 E 95 34 NA

Мы можем использовать следующий код, чтобы определить, какие позиции имеют пропущенные значения в столбце «ассисты», и найти общее количество пропущенных значений в столбце «ассисты»:

#identify locations of missing values in 'assists' column
which(is.na(df$assists))

[1] 1 3 4

#count total missing values in 'assists' column
sum(is.na(df$assists))

[1] 3

Из вывода мы видим, что позиции 1 , 3 и 4 имеют пропущенные значения в столбце «ассисты», и всего в столбце пропущено 3 значения.

Пример 2. Подсчет пропущенных значений во всех столбцах

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

#create data frame
df <- data.frame(team=c('A', 'B', 'C', NA, 'E'),
 points=c(99, 90, 86, 88, 95),
 assists=c(NA, 28, NA, NA, 34),
 rebounds=c(30, 28, 24, 24, NA))

#count total missing values in each column of data frame
sapply(df, function (x) sum(is. na (x)))

 team points assists rebounds 
 1 0 3 1 

Из вывода мы видим:

  • В столбце "команда" отсутствует 1 значение.
  • Столбец «баллы» содержит 0 пропущенных значений.
  • В столбце «Помощь» отсутствуют 3 значения.
  • В столбце "Подборы" отсутствует 1 значение.

Пример 3: подсчет пропущенных значений во всем фрейме данных

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

#create data frame
df <- data.frame(team=c('A', 'B', 'C', NA, 'E'),
 points=c(99, 90, 86, 88, 95),
 assists=c(NA, 28, NA, NA, 34),
 rebounds=c(30, 28, 24, 24, NA))

#count total missing values in entire data frame
sum(is.na(df))

[1] 5 

Из вывода мы видим, что во всем фрейме данных всего 5 пропущенных значений.

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

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

Как заменить пропущенные значения в R
Как заменить NA строками в R
Как заменить NA на ноль в dplyr

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