2014-09-16 2 views
2

На днях я читал следующие строки в R, и я не понимаю, что означают %>% и summarise(n=n()) и summarise(total=n()). Однако я понимаю методы group_by и ungroup.Что означает n = n() в R?

Может кто-нибудь помочь? Для этого нет никакой документации.

library(dplyr) 
net.multiplicity <- group_by(net, nodeid, epoch) %>% summarise(n=n()) %>% 
        ungroup() %>% group_by(n) %>% summarise(total=n()) 
+2

Имеется документация для 'n()'. Введите '? N()' в консоли. Это, по сути, количество наблюдений внутри группы –

+0

'%>%' - это новая форма синтаксиса, позволяющая разрешать каналы и, соответственно, делает код читаемым/записываемым слева направо. См. [Это резюме] (http://www.r-statistics.com/2014/08/simpler-r-coding-with-pipes-the-present-and-future-of-the-magrittr-package/) для более подробно. – Dan

+0

Threre также является документацией для '%>%'. Введите '?"%>% "' (Вам нужны кавычки из-за специальных символов) – nico

ответ

5

Это из пакета dplyr. n=n() означает, что переменной с именем n будет присвоено количество строк (количество наблюдений) в суммированных данных.

%>% читается как «а затем» и является способом перечисления ваших функций последовательно, а не их вложения. Так что команда говорит, что вы должны выполнить группировку, а затем summarize результат группировки по количеству строк в каждой группе, а затем ungroup, который приведет к результату, а затем сгруппируйте негруппированные данные на основе n, а затем summarize, что на общую сумму количество строк в каждой из новых групп.

+0

Нам даже нужно было разгруппировать? Мы могли бы просто группировать группированные данные на основе n вместо группировки негруппированных данных, не так ли? – Glassjawed

+0

@Glassjawed Я думаю, что вы правы. Вы можете использовать дополнительный аргумент 'add', который по умолчанию является' FALSE', но когда 'TRUE', он добавляет к выходящим группам, а не переопределяет их. –

Смежные вопросы