Подсчет количества наблюдений / строк на группу и добавить результат к Рамка данных

скажем, у меня есть данные . Crame Объект:

df <- data.frame(name=c('black','black','black','red','red'),
                 type=c('chair','chair','sofa','sofa','plate'),
                 num=c(4,5,12,4,3))

Теперь я хочу сосчитать количество наблюдений на каждую комбинацию имя и типа . Это может быть сделано так:

table(df[ , c("name","type")])

или, возможно, также с PLYR , (хотя я не уверен, как).

Однако, как мне получить результаты, включенные в оригинальный кадр данных? Так что результаты будут выглядеть так:

df
#    name  type num count
# 1 black chair   4     2
# 2 black chair   5     2
# 3 black  sofa  12     1
# 4   red  sofa   4     1
# 5   red plate   3     1

где считается теперь хранит результаты от агрегации.

Раствор с Plyr может быть интересно, а также для изучения, хотя я хотел бы увидеть, как это сделано с базой R.

46
задан Jaap 19 February 2018 в 08:48
поделиться