0

这是一个超级新手问题,但我完全迷失了阅读文档。我有一个指定 user_id 和 scoretype 的 csv(数据值可以是“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

ETC

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

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

谁能指出我正确的方向?

谢谢!

4

1 回答 1

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不会是正确的选择)。

于 2013-06-21T19:51:44.373 回答