gpt4 book ai didi

r - 如何从 ROCR 包中导出数据

转载 作者:行者123 更新时间:2023-12-01 22:45:22 26 4
gpt4 key购买 nike

我正在尝试使用 ROCR 包从分析中导出生物识别数据。这是我到目前为止完成的代码:

pred = performance(Matching.Score,Distribution)
perf = prediction(pred,"fnr", "fpr")

An object of class “performance”

Slot "x.name":

[1] "False positive rate"

Slot "y.name":

[1] "False negative rate"

Slot "alpha.name":

[1] "Cutoff"

Slot "x.values":

[[1]]

[1] 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
[15] 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
......

Slot "y.values":

[[1]]

[1] 1.00000 0.99999 0.99998 0.99997 0.99996 0.99995
[15] 0.99986 0.99985 0.99984 0.99983 0.99982 0.99981
......

Slot "alpha.values":

[[1]]

[1] Inf 1.0427800 1.0221150 1.0056240 1.0032630 0.9999599
[12] 0.9644779 0.9633058 0.9628996 0.9626501 0.9607665 0.9605930
.......

这会产生多个插槽。我想将结果值导出到一个文本文件中,以便使用以下命令进行 Excel 修改:

write(pred, "文件名")

但是,当我尝试写入文件时,我收到一条错误消息:

Error in cat(list(...), file, sep, fill, labels, append) : 
argument 1 (type 'S4') cannot be handled by 'cat'

有什么办法解决这个问题吗?

如果有任何建议,我将不胜感激。谢谢你!

马特·彼得森

最佳答案

使用str检查生成的S4对象的类结构,提取相关变量构建数据框并使用write.table/write.csv 导出结果。例如,对于预测 pred:

R> library("ROCR")
R> data(ROCR.simple)
R> pred <- prediction(ROCR.simple$predictions, ROCR.simple$labels)
R> perf <- performance(pred, "fnr", "fpr")
R> str(pred)
Formal class 'prediction' [package "ROCR"] with 11 slots
..@ predictions:List of 1
.. ..$ : num [1:200] 0.613 0.364 0.432 0.14 0.385 ...
..@ labels :List of 1
.. ..$ : Ord.factor w/ 2 levels "0"<"1": 2 2 1 1 1 2 2 2 2 1 ...
..@ cutoffs :List of 1
.. ..$ : num [1:201] Inf 0.991 0.985 0.985 0.983 ...
..@ fp :List of 1
.. ..$ : num [1:201] 0 0 0 0 1 1 2 3 3 3 ...
..@ tp :List of 1
.. ..$ : num [1:201] 0 1 2 3 3 4 4 4 5 6 ...
..@ tn :List of 1
.. ..$ : num [1:201] 107 107 107 107 106 106 105 104 104 104 ...
..@ fn :List of 1
.. ..$ : num [1:201] 93 92 91 90 90 89 89 89 88 87 ...
..@ n.pos :List of 1
.. ..$ : int 93
..@ n.neg :List of 1
.. ..$ : int 107
..@ n.pos.pred :List of 1
.. ..$ : num [1:201] 0 1 2 3 4 5 6 7 8 9 ...
..@ n.neg.pred :List of 1
.. ..$ : num [1:201] 200 199 198 197 196 195 194 193 192 191 ...

R> write.csv(data.frame(fp=pred@fp, fn=pred@fn), file="result_pred.csv")

性能perf:

R> str(perf)
Formal class 'performance' [package "ROCR"] with 6 slots
..@ x.name : chr "False positive rate"
..@ y.name : chr "False negative rate"
..@ alpha.name : chr "Cutoff"
..@ x.values :List of 1
.. ..$ : num [1:201] 0 0 0 0 0.00935 ...
..@ y.values :List of 1
.. ..$ : num [1:201] 1 0.989 0.978 0.968 0.968 ...
..@ alpha.values:List of 1
.. ..$ : num [1:201] Inf 0.991 0.985 0.985 0.983 ...

R> write.csv(data.frame(fpr=perf@x.values,
fnr=perf@y.values,
alpha.values=perf@alpha.values),
file="result_perf.csv")

关于r - 如何从 ROCR 包中导出数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1714818/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com