从多行计算新数据帧

时间:2013-06-21 19:49:10

标签: r

这是一个超级新手的问题,但我完全忘记了阅读文档。我有一个csv指定user_id和scoretype(一个数据值可以是“tp”,“fp”或“fn”之一,分别为真阳性,假阳性,假阴性)。

所以我的数据看起来像这样:

user_id, type, value
1         tp     342
1         fp     22
1         fn     25
2         tp     232
2         fp     342
2         fn     3

我想根据这些数据计算F1得分。我编写了一个以tp,fp和fn为参数的函数,但首先我需要重新排列这个表,以便得分类型成为一列:

user_id, tp, fp, fn
1        342  22  25
etc

有人能指出我正确的方向吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

你走了:

library(reshape2)
dcast(dat,user_id ~ type,fun.aggregate = sum,value.var = 'value')
  user_id fn  fp  tp
1       1 25  22 342
2       2  3 342 232

我想应该指出,我认为这假设每个用户的每个变量只有一个值(否则sum将不是正确的选择)。