【发布时间】:2010-11-05 08:32:41
【问题描述】:
我在R中有一个90万行11列的数据框,列名和类型如下:
column name: date / mcode / mname / ycode / yname / yissue / bsent / breturn / tsent / treturn / csales
type: Date / Char / Char / Char / Char / Numeric / Numeric / Numeric / Numeric / Numeric / Numeric
我想计算小计。例如,我想计算 yname 每次更改时的总和,并将小计添加到所有数值变量中。有 160 个不同的 yname,所以结果表应该告诉我每个 yname 的小计。我还没有对数据进行排序,但这不是问题,因为我可以按照我想要的任何方式对数据进行排序。以下是我数据中的一个 sn-p:
date mcode mname ycode yname yissue bsent breturn tsent treturn csales
417572 2010-07-28 45740 ENDPOINT A 5772 XMAG 20100800 7 0 7 0 0
417573 2010-07-31 45740 ENDPOINT A 5772 XMAG 20100800 0 0 0 0 1
417574 2010-08-04 45740 ENDPOINT A 5772 XMAG 20100800 0 0 0 0 1
417575 2010-08-14 45740 ENDPOINT A 5772 XMAG 20100800 0 0 0 0 1
417576 2010-08-26 45740 ENDPOINT A 5772 XMAG 20100800 0 4 0 0 0
417577 2010-07-28 45741 ENDPOINT L 5772 XMAG 20100800 2 0 2 0 0
417578 2010-08-04 45741 ENDPOINT L 5772 XMAG 20100800 2 0 2 0 0
417579 2010-08-26 45741 ENDPOINT L 5772 XMAG 20100800 0 4 0 0 0
417580 2010-07-28 46390 ENDPOINT R 5772 XMAG 20100800 3 0 3 0 1
417581 2010-07-29 46390 ENDPOINT R 5772 XMAG 20100800 0 0 0 0 2
417582 2010-08-01 46390 ENDPOINT R 5779 YMAG 20100800 3 0 3 0 0
417583 2010-08-11 46390 ENDPOINT R 5779 YMAG 20100800 0 0 0 0 1
417584 2010-08-20 46390 ENDPOINT R 5779 YMAG 20100800 0 0 0 0 1
417585 2010-08-24 46390 ENDPOINT R 5779 YMAG 20100800 2 0 2 0 1
417586 2010-08-26 46390 ENDPOINT R 5779 YMAG 20100800 0 2 0 2 0
417587 2010-07-28 46411 ENDPOINT D 5779 YMAG 20100800 6 0 6 0 0
417588 2010-08-08 46411 ENDPOINT D 5779 YMAG 20100800 0 0 0 0 1
417589 2010-08-11 46411 ENDPOINT D 5779 YMAG 20100800 0 0 0 0 1
417590 2010-08-26 46411 ENDPOINT D 5779 YMAG 20100800 0 4 0 4 0
我应该在这里使用什么功能?也许像 SQL group by 这样的东西?
【问题讨论】:
-
如果您向我们提供数据的 sn-p 或您真正想要的更多详细信息,这会容易得多。当您自己不提供示例时,您要求我们提供示例具有一定程度的讽刺意味!不过说真的,大多数 R 大师很可能不会使用 Excel,而且很可能很长时间没有使用 Excel,所以当你说“像 Excel 一样做”时,不要以为我们知道你的意思。
yname是否已排序?因为那将是 R 中的一项聚合任务(即,您需要 yname 定义的组的数字总和)。 -
@Gavin Simpson:我已根据您的评论更新了我的问题。