Вы можете использовать следующие методы для подсчета значений, отличных от NA, в R:
Метод 1: подсчет значений, не относящихся к NA, во всем фрейме данных
sum( ! is.na(df))
Метод 2: подсчет значений, не относящихся к NA, в каждом столбце фрейма данных
colSums( ! is.na(df))
Метод 3: подсчет значений, не относящихся к NA, по группам во фрейме данных
library(dplyr)
df %>%
group_by(var1) %>%
summarise(total_non_na = sum( ! is. na (var2)))
В следующем примере показано, как использовать каждый из этих методов на практике со следующим фреймом данных:
#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
points=c(12, NA, 30, 32, 20, 22, 17, NA),
rebounds=c(10, 8, 9, 13, NA, 20, 8, 7))
#view data frame
df
team points rebounds
1 A 12 10
2 A NA 8
3 A 30 9
4 A 32 13
5 B 20 NA
6 B 22 20
7 B 17 8
8 B NA 7
Метод 1: подсчет значений, не относящихся к NA, во всем фрейме данных
В следующем коде показано, как подсчитать общее количество значений, отличных от NA, во всем фрейме данных:
#count non-NA values in entire data frame
sum( ! is.na(df))
[1] 21
Из вывода мы видим, что во всем фрейме данных есть 21 значение, отличное от NA.
Метод 2: подсчет значений, не относящихся к NA, в каждом столбце фрейма данных
В следующем коде показано, как подсчитать общее количество значений, отличных от NA, в каждом столбце фрейма данных:
#count non-NA values in each column
colSums( ! is.na(df))
team points rebounds
8 6 7
Из вывода мы видим:
- В столбце team есть 8 значений, не относящихся к NA.
- В столбце очков есть 6 значений, не относящихся к NA.
- В столбце подборов есть 7 значений, не относящихся к NA.
Метод 3: подсчет значений, не относящихся к NA, по группам
В следующем коде показано, как подсчитать общее количество значений, не относящихся к NA, в столбце очков , сгруппированных по столбцу команды :
library(dplyr)
df %>%
group_by(team) %>%
summarise(total_non_na = sum( ! is. na (points)))
# A tibble: 2 x 2
team total_non_na
1 A 3
2 B 3
Из вывода мы видим:
- В столбце очков для команды А есть 3 значения, не относящиеся к NA.
- В столбце очков для команды B есть 3 значения, не относящиеся к NA.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции с отсутствующими значениями в R:
Как найти и подсчитать пропущенные значения в R
Как заменить пропущенные значения в R