Сортировка Dataframe, созданного с помощью sapply, используя R - PullRequest
0 голосов
/ 07 декабря 2018

Я создал массив, подсчитывающий NA каждого столбца, используя sapply

na_count <-sapply(df, function(y) sum(length(which(is.na(y)))))

Затем я преобразовал его в Dataframe

na_count <-data.frame(na_count)

Я пытаюсь отсортировать его по убываниюПорядок с использованием следующего кода:

na_count[order(na_count$na_count),]

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

1 Ответ

0 голосов
/ 07 декабря 2018

Они хранятся как row.names, которые хранятся как атрибут в объекте и поэтому легко отбрасываются функциями.(Следует отметить, что я не теряю имя строки с вашим кодом, но это не меняет того факта, что они хрупкие, и многие программисты считают, что если вам нужно сохранить его, сделайте это явноимя строки.) Большинство функций в dplyr и связанных с ними пакетах, например, объявляют о намеренном их отбрасывании.

Часто лучше явно сделать их столбцом.Добавление в предложения @ MauritsEvers's и @JasonAizkalns, возможно, что-то вроде:

na_count <- sort(colSums(is.na(df)))
na_count <- data.frame(names=names(na_count), count=na_count)

(В настоящее время он сортируется по наименьшему числу NA.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...