Как выполнить удаление по списку в R (с примером)


Удаление по списку — это метод, который удаляет все строки из фрейма данных, в которых отсутствует значение в каком -либо столбце.

Самый простой способ выполнить удаление по списку в R — использовать следующий синтаксис:

complete_df <- df[complete.cases(df), ]

Этот синтаксис использует функцию complete.cases() для создания нового фрейма данных, который содержит только строки из исходного фрейма данных, в которых нет пропущенных значений ни в одном столбце.

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

Пример: выполнение удаления по списку в R

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

#create data frame
df <- data.frame(rating=c(70, 75, 75, 78, 81, 85, 89, 91, 94, 97),
 points=c(12, 15, 14, 13, NA, 29, 24, 18, 20, 25),
 assists=c(9, 5, NA, 5, 7, 8, 11, 12, 13, 11))

#view data frame
df

 rating points assists
1 70 12 9
2 75 15 5
3 75 14 NA
4 78 13 5
5 81 NA 7
6 85 29 8
7 89 24 11
8 91 18 12
9 94 20 13
10 97 25 11

Обратите внимание, что две строки содержат значения NA в определенных столбцах.

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

#create new data frame that only contains rows with no missing values
complete_df <- df[complete.cases(df), ]

#view new data frame
complete_df

 rating points assists
1 70 12 9
2 75 15 5
4 78 13 5
6 85 29 8
7 89 24 11
8 91 18 12
9 94 20 13
10 97 25 11

Обратите внимание, что ни в одной из строк этого нового фрейма данных нет пустых значений ни в одном столбце.

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

#count how many rows have missing values in any column
nrow(df[ ! complete.cases(df), ])

[1] 2

Это говорит нам о том, что в 2 строках исходного фрейма данных отсутствуют значения по крайней мере в одном столбце.

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

#count how many rows do not have missing values in any column
nrow(df[complete.cases(df), ])

[1] 8

Это говорит нам о том, что в 8 строках исходного фрейма данных не было пропущенных значений ни в одном столбце.

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

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

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

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