File: coords_transpose.Rd

package info (click to toggle)
r-cran-proc 1.18.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,260 kB
  • sloc: cpp: 144; sh: 14; makefile: 2
file content (98 lines) | stat: -rw-r--r-- 3,163 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
\encoding{UTF-8}
\name{coords_transpose}
\alias{coords_transpose}

\title{Transposing the output of \code{coords}}

\description{This help page desribes recent and upcoming changes in the 
return values of the \code{\link{coords}} function.}

\section{Background information}{

Until the release of pROC 1.16, the \code{coords} function was returning 
a matrix with thresholds in columns, and the coordinate variables in rows.

\preformatted{
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 
\href{https://www.tidyverse.org/}{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 \code{coords} is going to return.

\preformatted{
coords(rocobj, "best")
#   threshold specificity sensitivity 
#   0.2050000   0.8055556   0.6341463 
# A numeric vector

}

Although it is possible to pass \code{drop = FALSE}, the fact that it is not the
default makes the behaviour unintuitive.

In pROC version 1.16, this was changed and \code{coords} now returns
a \code{\link{data.frame}} with the thresholds in rows and measurement in colums by default.

\preformatted{
 coords(rocobj, c(0.05, 0.2, 0.5), transpose = FALSE)
#      threshold specificity sensitivity
# 0.05      0.05  0.06944444   0.9756098
# 0.2       0.20  0.80555556   0.6341463
# 0.5       0.50  0.97222222   0.2926829
}
}

\section{Changes in 1.15}{
\enumerate{
	\item{Addition of the \code{transpose} argument.}
	\item{Display a warning if \code{transpose} is missing. Pass \code{transpose} explicitly to silence the warning.}
	\item{Deprecation of \code{as.list}.}
}
}

\section{Changes in 1.16}{
\enumerate{
	\item{Change of the default \code{transpose} to \code{TRUE}.}
}
THIS CHANGE IS BACKWARDS INCOMPATIBLE AND IS EXPECTED TO BREAK LEGACY CODE.
}

\section{Changes in 1.17}{
\enumerate{
	\item{Dropped the warning if \code{transpose} is missing.}
}
}

\section{Changes in future versions}{
\enumerate{
	\item{Support for  the \code{as.list} argument might be dropped in the future.
	This is still under consideration.}
	\item{
	The \code{transpose} and \code{drop} arguments might be deprecated in the future, but will remain available for a few additional major versions.
	}
}
}

\section{Related changes in ci.coords}{
In version 1.16, the format of the \code{\link{ci.coords}} return value was changed from a matrix-like object with mixed \code{x} and \code{ret} in rows and 3 columns, into a list-like object which should be easier to use programatically.
}

\section{Recommendations}{
If you are writing a new script calling the \code{coords} function, set \code{transpose = FALSE} to silence the warning and benefit from the latest improvements in pROC and obtain a tidy data.
}

\section{See also}{
\href{https://github.com/xrobin/pROC/issues/54}{The GitHub issue tracking the changes described in this manual page}.
}