为了账号安全,请及时绑定邮箱和手机立即绑定

每组计数观察/行数,并将结果添加到数据帧中

每组计数观察/行数,并将结果添加到数据帧中

HUX布斯 2019-06-15 18:05:13
每组计数观察/行数,并将结果添加到数据帧中说我有一个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))现在,我要计算每个组合的观察次数。name和type..可以这样做: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哪里count现在存储聚合的结果。解决方案plyr学习也可能很有趣,不过我想看看这是如何用R基完成的。
查看完整描述

3 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞


你可以用ave:

df$count <- ave(df$num, df[,c("name","type")], FUN=length)


查看完整回答
反对 回复 2019-06-15
?
桃花长相依

TA贡献1860条经验 获得超8个赞

你可以这样做:

> 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


查看完整回答
反对 回复 2019-06-15
  • 3 回答
  • 0 关注
  • 511 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信