Transposing the output of coords
coords_transpose.RdThis help page desribes recent and upcoming changes in the
return values of the coords function.
Background information
Until the release of pROC 1.16, the coords function was returning
a matrix with thresholds in columns, and the coordinate variables in rows.
data(aSAH)
rocobj <- roc(aSAH$outcome, aSAH$s100b)
coords(rocobj, c(0.05, 0.2, 0.5))
# 0.05 0.2 0.5
# threshold 0.05000000 0.2000000 0.5000000
# specificity 0.06944444 0.8055556 0.9722222
# sensitivity 0.97560976 0.6341463 0.2926829
This format didn't conform to the grammar of the tidyverse which has become prevalent in modern R language.
In addition, the dropping of dimensions by default makes it difficult to guess
what type of data coords is going to return.
coords(rocobj, "best")
# threshold specificity sensitivity
# 0.2050000 0.8055556 0.6341463
# A numeric vector
Although it is possible to pass drop = FALSE, the fact that it is not the
default makes the behaviour unintuitive.
In pROC version 1.16, this was changed and coords now returns
a data.frame with the thresholds in rows and measurement in colums by default.
Changes in 1.15
Addition of the
transposeargument.Display a warning if
transposeis missing. Passtransposeexplicitly to silence the warning.Deprecation of
as.list.
Changes in 1.16
Change of the default
transposetoTRUE.
THIS CHANGE IS BACKWARDS INCOMPATIBLE AND IS EXPECTED TO BREAK LEGACY CODE.
Changes in 1.19
Setting
transpose=TRUEis deprecated and triggers a warning.The
as.list,as.matrixanddropare deprecated. Setting them to any value triggers a waring.transpose=FALSEcontinues to work normally.
Changes in future versions
Setting
transposetoTRUEwill stop working and result in an error.The
drop,as.listandas.matrixarguments will be removed.transpose=FALSEwill keep working indefinitely.
Related changes in ci.coords
In version 1.16, the format of the ci.coords return value was changed from a matrix-like object with mixed x and ret in rows and 3 columns, into a list-like object which should be easier to use programatically.