【发布时间】:2011-08-28 22:36:55
【问题描述】:
这个问题似乎微不足道,但经过几个小时的阅读,我已经束手无策了。
我需要生成一个与输入向量长度相同的向量,为输入向量的每个值列出该值的总计数。所以,举例来说,我想生成这个数据框的最后一列:
> df
customer.id transaction.count total.transactions
1 1 1 4
2 1 2 4
3 1 3 4
4 1 4 4
5 2 1 2
6 2 2 2
7 3 1 3
8 3 2 3
9 3 3 3
10 4 1 1
我意识到这可以通过两种方式完成,要么使用第一列的运行长度,要么使用第一列对第二列进行分组并应用最大值。
两个tapply我都试过了:
> tapply(df$transaction.count, df$customer.id, max)
还有:
> rle(df$customer.id)
但两者都返回一个比原始长度更短的向量:
[1] 4 2 3 1
感激地接受任何帮助!
【问题讨论】:
-
非常感谢您的出色回答!所有答案都很好用。
标签: r