Я использую набор данных mtcars
. Я хочу найти количество записей для определенной комбинации данных. Что-то очень похожее на предложение count(*)
group by в SQL. ddply()
от plyr работает на меня
library(plyr)
ddply(mtcars, .(cyl,gear),nrow)
имеет выход
cyl gear V1
1 4 3 1
2 4 4 8
3 4 5 2
4 6 3 2
5 6 4 4
6 6 5 1
7 8 3 12
8 8 5 2
Используя этот код
library(dplyr)
g <- group_by(mtcars, cyl, gear)
summarise(g, length(gear))
имеет выход
length(cyl)
1 32
Я нашел различные функции, которые можно передать summarise()
, но, похоже, ни одна из них у меня не работает. Я нашел одну функцию sum(G)
, которая вернула
Error in eval(expr, envir, enclos) : object 'G' not found
Пробовал использовать n()
, который вернул
Error in n() : This function should not be called directly
Что я делаю неправильно? Как я могу заставить group_by()
/ summarise()
работать на меня?
ddply
. На какой версии dplyr вы работаете? Попробовать обновить? - person joran   schedule 31.03.2014sum(G)
не работает, потому что предположительноG
не существует. Может ты имел ввидуg
? И ваш пример также отлично работает для меня, используяn()
. - person joran   schedule 31.03.2014g
на самом деле не был сгруппирован. Поэтому я бы поискал причину, по которой вы могли бы каким-то образом разгруппировать свой фрейм данных. - person joran   schedule 31.03.2014mtcars %.% group_by(cyl, gear) %.% summarise(length(gear))
, дает тот же результат. - person Victorp   schedule 31.03.2014