Столбец сортировки по количеству вхождений в R - PullRequest
0 голосов
/ 11 января 2019

У меня есть набор данных, в котором есть столбец с именем 'customername'.

Пример набора данных:

+==================================+===============+==+==+===============================+==+
 |          Customer Name           | Customer code |  |  |         Invoice Type          |  |
+==================================+===============+==+==+===============================+==+
 | ALECTRONA ENERGY PRIVATE LIMITED | IMA281        |  |  | In-Bonding Invoice            |  |
+----------------------------------+---------------+--+--+-------------------------------+--+
| A P SRINIVASAN AND SONS          | CHA061        |  |  | In-Bonding Invoice            |  |
+----------------------------------+---------------+--+--+-------------------------------+--+
| MOLEX INDIA PVT LTD              | IMM098        |  |  | Import Final Delivery Invoice |  |
+----------------------------------+---------------+--+--+-------------------------------+--+

Обязательно: По частоте мне нужно отсортировать набор данных. Ex. Если у меня есть имя «Hogg», то нужно напечатать, сколько раз «hogg» происходило, и отсортировать весь набор данных, который имеет максимальное значение. Для этого я использовал приведенную ниже команду,

arrangedone = sort(table(data$`Customer Name`),decreasing = TRUE)

Что дает имя клиента с максимальным внешним видом, исходя из этого мне нужно отсортировать весь набор данных. И я упорядочил или отсортировал с помощью команды упорядочить.

arrange(data,arrangedone).

Выдает ошибку как

     "Error in arrange_impl(.data, dots):incorrect size (2243) at position 1, expecting : 28898

Могу ли я использовать любую другую опцию / команду для преодоления этого?

Спасибо

1 Ответ

0 голосов
/ 11 января 2019

Если вы хотите отсортировать набор данных, используя переменную, и отобразить, сколько было вхождений, вы можете попробовать функцию add_count() из пакета dplyr. Я создал небольшой воспроизводимый пример ниже, чтобы продемонстрировать. Использование параметра sort = TRUE позволит отсортировать набор данных на основе количества вхождений.

library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union

custs <- tibble::tribble(
  ~customername, ~customercode,
          "Bob",         1234L,
         "Jane",         4567L,
        "Alice",         5487L,
      "Michael",         7891L,
          "Bob",         1234L,
         "Jane",         4567L,
      "Michael",         7891L,
          "Bob",         1234L
  )

custs %>% 
  add_count(customername, sort = TRUE)
#> # A tibble: 8 x 3
#>   customername customercode     n
#>   <chr>               <int> <int>
#> 1 Bob                  1234     3
#> 2 Bob                  1234     3
#> 3 Bob                  1234     3
#> 4 Jane                 4567     2
#> 5 Michael              7891     2
#> 6 Jane                 4567     2
#> 7 Michael              7891     2
#> 8 Alice                5487     1

Создано в 2019-01-11 пакетом Представить (v0.2.1)

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