The all-in-one calls are difficult to maintain and to test. For instance all the *.formula methods are a mess. Functions such as ci or auc should not create ROC curves, and the ROC function shouldn't plot and calculate CI.
For instance, replace the following example in ?pROC:
roc(aSAH$outcome,
aSAH$s100b, percent=TRUE,
# arguments for auc
partial.auc=c(100, 90), partial.auc.correct=TRUE,
partial.auc.focus="sens",
# arguments for ci
ci=TRUE, boot.n=100, ci.alpha=0.9, stratified=FALSE,
# arguments for plot
plot=TRUE, auc.polygon=TRUE, max.auc.polygon=TRUE, grid=TRUE,
print.auc=TRUE, print.thres= "best")
The all-in-one calls are difficult to maintain and to test. For instance all the *.formula methods are a mess. Functions such as ci or auc should not create ROC curves, and the ROC function shouldn't plot and calculate CI.
For instance, replace the following example in ?pROC:
By a more modular call such as:
This will require some refactoring to add plot.auc and a plot.ci.auc; and probably several more for consistency.
In the long term, consider dropping the partial.auc arguments in ROC and have them only in auc.