Как найти и подсчитать пропущенные значения в 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