sort () работает нормально, но использование его для отображения полного фрейма данных сортировки дает другой вывод, а не отсортированный вывод - PullRequest
0 голосов
/ 08 июля 2019

Я хочу отсортировать фрейм данных по содержимому столбца. Использование функции sort (), но не получение отсортированного фрейма данных

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

Я попытался отсортировать (data_info $ Age), который дал правильный вывод:

> my_sort <- sort(data_info$Age)
 [1] 19 19 19 20 20 20 20 20 20 20 20 20 20 21 23
Levels: 19 20 21 23

теперь хотите отсортировать полный фрейм данных по возрасту, поэтому использовали:

> group_info_df[my_sort,]

Я ожидаю отсортированный фрейм данных, но вывод был

         Gender Age Favorite_Food Day_of_birth
Marcos     Male  23         Pizza           24        
Marcos.1   Male  23         Pizza           24        
Marcos.2   Male  23         Pizza           24        
Sahil      Male  20          Dosa           17         
Sahil.1    Male  20          Dosa           17         
Sahil.2    Male  20          Dosa           17         
Sahil.3    Male  20          Dosa           17         
Sahil.4    Male  20          Dosa           17   

Он отображал одну и ту же строку много раз вместо отображения всех других строк. в чем ошибка или как решить эту проблему

1 Ответ

0 голосов
/ 08 июля 2019

Нам нужно использовать order вместо sort, так как sort возвращает отсортированные значения, но он также может получить индекс, если мы используем index.return = TRUE.Затем он вернул бы list с именами 'x' и 'ix' для отсортированных значений и соответствующего индекса.Глядя на данные, столбец factor.Мы можем преобразовать его в numeric и затем order, чтобы упорядочить строки набора данных

new_df <- group_info_df[order(as.numeric(as.character(data_info$Age))),,
          drop = FALSE]

row.names(new_df) <- NULL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...