首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聚合与DCast

聚合与DCast
EN

Stack Overflow用户
提问于 2014-11-25 16:08:55
回答 1查看 69关注 0票数 2

我有一个data.table,其内容如下:

代码语言:javascript
复制
      betnr   persnr status year
1: 50536224 60961963 normal 1997
2: 50536224 62841998 normal 1997
3: 50536224 62841998 normal 1998
4: 50536224 60961963   fire 1998
5: 50536224 62841998   fire 1999
6: 50536224 60961963   hire 1996
7: 50536224 62841998   hire 1996
8: 50536224 63000343  SHORT 1998

我想通过betnryear来聚合不同status发生的次数。我的做法如下:

代码语言:javascript
复制
aggregateNStatus <- test[, .N, by=list(betnr, year, status)]
dcast.data.table(aggregateNStatus, betnr + year  ~ status)
      betnr year SHORT fire hire normal
1: 50536224 1996    NA   NA    2     NA
2: 50536224 1997    NA   NA   NA      2
3: 50536224 1998     1    1   NA      1
4: 50536224 1999    NA    1   NA     NA

这正是我想要的,但看起来很麻烦。考虑到data.table的惊人之处,难道没有办法一步一步地做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-25 16:14:56

你不需要aggregateNStatus

代码语言:javascript
复制
 dcast.data.table(test, betnr+year~status, length,
                       fill=NA_integer_, value.var='status')
 #     betnr year SHORT fire hire normal
#1: 50536224 1996    NA   NA    2     NA
#2: 50536224 1997    NA   NA   NA      2
#3: 50536224 1998     1    1   NA      1
#4: 50536224 1999    NA    1   NA     NA
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27131506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档