每組計(jì)數(shù)觀察/行數(shù),并將結(jié)果添加到數(shù)據(jù)幀中說我有一個(gè)data.frame目的:df <- data.frame(name=c('black','black','black','red','red'),
type=c('chair','chair','sofa','sofa','plate'),
num=c(4,5,12,4,3))現(xiàn)在,我要計(jì)算每個(gè)組合的觀察次數(shù)。name和type..可以這樣做:table(df[ , c("name","type")])也有可能plyr(雖然我不知道該怎么做)。但是,如何將結(jié)果合并到原始數(shù)據(jù)框架中呢?所以結(jié)果會(huì)是這樣的: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哪里count現(xiàn)在存儲(chǔ)聚合的結(jié)果。解決方案plyr學(xué)習(xí)也可能很有趣,不過我想看看這是如何用R基完成的。
3 回答

互換的青春
TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
ave
:
df$count <- ave(df$num, df[,c("name","type")], FUN=length)

桃花長相依
TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊
> ddply(df,.(name,type),transform,count = NROW(piece)) name type num count1 black chair 4 22 black chair 5 23 black sofa 12 14 red plate 3 15 red sofa 4 1
> ddply(df,.(name,type),transform,count = length(num)) name type num count1 black chair 4 22 black chair 5 23 black sofa 12 14 red plate 3 15 red sofa 4 1
- 3 回答
- 0 關(guān)注
- 566 瀏覽
添加回答
舉報(bào)
0/150
提交
取消