这是一个超级新手的问题,但我完全忘记了阅读文档。我有一个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
有人能指出我正确的方向吗?
谢谢!
答案 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
将不是正确的选择)。