x
Team Date Score
A 1-1-2012 80
A 1-2-2012 90
A 1-3-2012 50
A 1-4-2012 40
B 1-1-2012 100
B 1-2-2012 60
B 1-3-2012 30
B 1-4-2012 70
etc
我可以将该数据框转换为宽数据框,每个团队一行,所有观测和日期作为标题:
xx
Team 1-1-2012 1-2-2012 1-3-2012 1-4-2012
A 80 90 50 40
B 100 60 30 70
我需要为每一行计算平均值和标准差,这可以通过以下方式完成:
xx
Team 1-1-2012 1-2-2012 1-3-2012 1-4-2012 mean sd
A 80 90 50 40 75 20
B 100 60 30 70 55 10
考虑到我在数据框xx中有成千上万行。我想对每个单元格进行如下计算:
如果abs(xx-Mean) > 3*SD,则创建一个计数器列名并增加值。这个想法是将每个观察结果与平均值和标准差进行比较,如果给定团队的每个观察结果都符合此条件 - abs(xx-Mean) > 3*SD,则增加计数器。检查完每个单元格后,我想查看每个团队的每个计数器,并获取具有最高计数器值的前十个高团队。基本上,我试图检测最多的异常值。一旦获得前10个团队名称,我想在数据框x上绘制它们的时间序列数据。
我希望我没有把这变得比应该更复杂。不确定R是否已经有函数来对每个单元格进行计算。如何完成这个任务的任何想法都会受到赞赏?
data.table
将会赢得这场战斗,这里有一些证据。 - Chase