2016-10-06 5 views
2

Я использую приведенный ниже код, чтобы извлечь сводку данных относительно столбца x, посчитав значения в столбце x из набора данных unique_data и упорядочив значения count в порядке убывания.Ошибка при использовании пакета dplyr в R

unique_data %>% 
group_by(x) %>% 
arrange(desc(count(x))) 

Но, когда я выполняю приведенный выше код я получаю сообщение об ошибке, как показано ниже,

Error: no applicable method for 'group_by_' applied to an object of class "character"

Пожалуйста, дайте мне знать, как то, что происходит не так в моем коде. Для вашей информации столбец x имеет тип символьных данных.

С уважением,
Mohan

+2

Не показывая воспроизводимый пример, не ясно, где вы получили ошибку. Одна проблема заключалась бы в обертывании 'count (x)' с 'desc' (но мы не можем протестировать) – akrun

+0

@akrun Просьба найти приведенный ниже пример, ID sdf fgh sdf sdf fgf Итак, теперь мне нужно подсчитать отдельные значения из моего Идентификатор. Итак, я должен получить вывод как, sdf 3 fgh 2 –

+0

Я думаю, что 'count' с' arr'' является проблемой. Возможно, 'unique_data%>% group_by (x)%>% count (x)%>% arr (desc (n))' Или он может быть сокращен до 'count (unique_data, x)%>% arr (desc (n)) ' – akrun

ответ

8

Причина в том, обертывание arrange на count. Мы должны сделать это отдельно. Если мы используем тот же код, что и в сообщении OP, просто разделите count и arrange на две отдельные трубы. Выходной сигнал count представляет собой частотный столбец «n» (по умолчанию), который мы arrange по убыванию (desc).

unique_data %>% 
      group_by(x) %>% 
      count(x) %>% 
      arrange(desc(n)) 

также не требуется group_by. Согласно ?count документации

tally is a convenient wrapper for summarise that will either call n or sum(n) depending on whether you're tallying for the first time, or re-tallying. count() is similar, but also does the group_by for you.

Так основана на том, что мы можем просто сделать

count(unique_data, x) %>% 
      arrange(desc(n)) 
Смежные вопросы