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