ggplot2 update to 3.4.0RSM_LLF,
RSM_wLLF, RSM_FPF, RSM_TPF,
RSM_NLF. These now match the usage in
RJafrocFrocBooklesDistr
vector, too complexgeom_line() occurs, check that
size aesthetic is replaced by linewidthggplot object
structure 10/25/22ggplot2 installed by the following linedevtools::install_github('tidyverse/ggplot2@v3.4.0-rc')developer into
master branchUtilAnalyticalAucsRSM_R function which does not
use Cpp codetempTest flag in
UtilAnalyticalAucsRSM; this uses Cpp❯ checking dependencies in R code ... WARNING
'::' or ':::' import not declared from: ‘R’
y_ROC_FPF_R generating a warning? This function
is not called anywhere, so I commented it out; the warning
disappearslambdaP to lambda and
lambda to lambda_i 9/19/22PlotRsmOperatingCharacteristics depends on RSM
parameters, not intrinsic parameters 9/22/22test-LROCFomCheck.R could not resolve
in time 9/22/22lesDistr = 1 in
PlotRsmOperatingCharacteristics as we don’t want user to
have to input this value when it is not needed for the requested
operating characteristic (e.g., FROC or AFROC).cran211 branch.RJafroc-package.Rd.cran210 branch.RoiData.xlsx.developer and
master as of 07/7/22.lesDist and relWeights
7/19/22lesDist, it is now
always 1DUtilLesDistrVector.R and
UtilLesionWeightsMatrix.RlesDistr and relWeight must have same
lengths and sum to unityrelWeight = 0 imposes equal weightsCh19Vig1FrocSampleSize.Rmd 6/7/22Ch19Vig2FrocSampleSize.Rmd and
Ch19Vig2FrocSampleSize.RmdDfWriteExcelDataFile 3/15/22DfSaveDataFile; it is now in
DfWriteExcelDataFileJT_R_Py_Foms.xlsx in
PyJafrocscraps directoryanalysisOption must be DBM or
ORtest-RSM-formulae.Rrsm-pred-wafroc-curve:
rsmFormulae.R and UtilAnalyticalAucsRSM.RRJafrocFrocBook, search for
rsm-pred-wafroc-curvedeveloper and masterRJafrocFrocBook, chapter on
3-fitsRsmFormulae.R: This file is a mess.PlotRsmOperatingCharacteristics? - these
are done in UtilAnalyticalAucsRsmRSM_yROC to accept physical parameters 12-26-21RSM_xROCRJafrocFrocBook, chapter on
3-fitsRsmFormulae.R
.RsmFormulae.R to accept
physical parameters.PlotRsmOperatingCharacteristics not working for
zeta1 = -Inf-Inf; detect it
and set to -3PlotRsmOperatingCharacteristics returning correct plots but
incorrect AUCszeta1 = -20 instead of
the supplied value.truthTableStr in any file
*.imrc when read by DfReadDataFile.tests:
StSignificanceTestingCadVsRad: Issue T1-RRRC for ROC data #73
for recreation of this issue.R and RStudio.DfExtracDataset.R was also affected: the change
fixes an error that did not get caught before.StSignificanceTestingCadVsRad.R.readerID and modalityID fields must be unique
integers, as indicated in documentation of
DfReadDataFile().*.lrc, *.txt, *.csv and
*.imrmc) for the simplest data structure (one rating for
each modality-reader-case). This is unnecessarily complicating the code.
Final resolution: I will support only
*.imrmc. Other formats can still be read by
DfReadDataFile() and then saved to a JAFROC
format file for analysis within the RJafroc package.DfReadDataFile to accommodate LROC data; added
flag lrocForcedMarknewExcelFileFormat = T for this
capabilityinst/extdata/toyFiles/LROC/lroc*.xlsxReadJAFROCNewFormat.R, just before final
return, for added codetest-DfReadDataFile().Ch19Vig1FrocSampleSize.Rmd and
Ch19Vig2FrocSampleSize.RmdSsFrocNhRsmModel.R to not return lesion
distribution and weightsSsFrocNhRsmModel.R to
do binning internal to the functionSsFrocNhRsmModel().Rcpp to 1.0.6. NOTE: version 1.0.6.6 created
horrendous errors - R aborts.RSM_xROC and RSM_pdfN)PlotRsmOperatingCharacteristics.R,UtilAnallyticalAucsRSM.R,rsmFormulae.Rtest-RSM-formulae.R and
test-model-aucs.RgoodValues to check that nothing has changedRJafrocBook
1/3/21Ch10Vig1QuickStartCh10Vig2QuickStartCompare3ProperRocFits.Rinst: MRMCRuns and
ANALYZEDRSM_*()tests for new functions RSM_*()cran3 branch.tests and vignettes (this needs to
be done on all computers I am using).inst/MRMCRuns except
Tony, the one that is used in an example.CrossedModalities.xlsx and references to
it.DfReadLrocDataFile.R and
findings.txt. Ran devtools::document() to fix
NAMESPACE.RoiData.xlsx.developer and
master as of 12/8/20.testthat failure on Ubuntu developer is resolved, see
master branch: checkEnvironment = FALSE in
expect_equal() on ggplot2 comparisons to
goodValues.lesDistr and relWeights.UtilSpecifyLesionWeightsDistrConvert2lesDistrlesDistrrelWeightsUtilSpecifyLesionWeightsDistr() which is distinct
from UtilLesionWeightsDistr(), as the latter works on
datasets.UtilAucRSM() to
UtilAnalyticalAucsRSM() to distinguish from
UtilFigureOfMerit() which works on datasets.Convert2lesDistr() to save me time
converting from 1D lesion distribution to 2D version which is the
standard in the rest of the package. It is currently not called
anywhere.zeta1 dependence to
UtilAnalyticalAucsRSM().StSignificanceTestingCadVsRad()RJafrocBookDualModalityRRRC()seed behaviour, no need for
SimulateFrocDatasetNoSeed()14-froc-meanings-xx.Rmd chapter.seed is not supplied, then
SimulateFrocDataset() behaves as before the Nov 17
changeseed to
SimulateFrocDataset()seed in order to reproduce FROC
datasets.test files.seed to other simulation
functions.Toy file with no non-diseased cases:
frocLocatClass.xlsx.
Symptom: UtilFigureOfMerit, with “wAFROC1” FOM
failed in C++ code in function double wAFROC1() with
message
Not compatible with requested type: [type=character; target=double]
The problem was traced to ReadJAFROCOldFormat.R (I
was using OldExcelFileFormat) which was returning
NL and LL as characters, not
numerics.
Fix: convert NL and LL from character
using as.numeric.
NLRating <- as.numeric(NLTable[[4]])
LLRating <- as.numeric(LLTable[[5]])
NewExcelFileFormat, which gave following
error: stop("Error in reading LL/TP table") Replaced code
in ReadJAFROCNewFormat.R as follows:if (is.na(tt2)) next else { # this is the change
if (tt2 != 1) stop("Error in reading LL/TP table") else
# the is.na() check ensures that an already recorded mark is not overwritten
if (is.na( LL[i, j, k, el])) LL[i, j, k, el] <- LLRatingCol[l]
}
# if (is.na(tt2)) stop("Error in reading LL/TP table") else {
# if (tt2 != 1) stop("Error in reading LL/TP table") else
# # the is.na() check ensures that an already recorded mark is not overwritten
# if (is.na( LL[i, j, k, el])) LL[i, j, k, el] <- LLRatingCol[l]
# }
Also replaced
el <- which(unique(truthTableSort$LesionID) == LLLesionIDCol[l]) - 1
with
if (K1 != 0) {
# this gives 0,1,2,..,max num of lesions
# which includes zero, hence the minus 1
el <- which(unique(truthTableSort$LesionID) == LLLesionIDCol[l]) - 1
} else {
# this gives 1,2,..,max num of lesions
# which does not include zero, hence no minus 1
el <- which(unique(truthTableSort$LesionID) == LLLesionIDCol[l])
}
test-UtilFigureOfMerit.RDfReadDataFile.R in function
checkTruthTable(); this bug discovered in working with HUGE
one reader dataset.I <- length(strsplit(modalityIDCol[1], split = ",")[[1]])
and similar expression for J.as.character as in: readerIDCol <- as.character(truthTable$ReaderID) # bug fix to avoid non-character input error below
modalityIDCol <- as.character(truthTable$ModalityID) # do:
RJafrocBook.PlotEmpiricalOperatingCharacteristics.R.gpfPlotGenericEmpiricalOperatingCharacteristic.R files in
inst/fixPlots.ggplot2with function usage in this function:
hard to tell what is going on and the help page on this function seems
to discourage this type of usage in packagesgenAbscissa, genOrdinate, Reader,
Modality.ggplot2 related issue.gpfPlotGenericEmpiricalOperatingCharacteristic function to
NULLs.CI for individual treatments averaged over
readers;inst/Iowa/VanDyke.txt, as I cannot find a better reference
for the equations used.DfSaveDataFile.R as it
creates non-standard files in doc directory; this did not
happen before the R update.test-PlotEmpiricalOperatingCharacteristics.R.RocFctrl, FrocFctrl, RocSpA and
FrocSpAORAnalysisSplitPlotA returns list
containing FOMs, ANOVA and
RRRCdeveloper branch and deleted
SplitPlotA branchpkgdown::build_site()MaxNLF, MaxLLF,
HrSe, HrSp, etc. Resolved after studyin XZ
code, StOldCode.R. The handling is shown in UtilPseudoValues.R. I
believe it is now correct. For MaxNLF, HrSp,
and ExpTrnsfmSp the relevant number of cases is
K1, for MaxLLF and HrSe it is
K2 and for all the rest it is K.FOMijk2VarCovSpA and
FOMijk2VarCov to accept a varInflFactor
logical argument, allowing jackknife, bootstrap and DeLong - based
estimates to be more compactly handled.UtilPseudoValues handles all designs without resorting
to separate functions for FCTRL, SPLIT-PLOT-A and SPLIT-PLOT-CfrocSpA toy dataset to stress code (unequal
numbers of abnormal and normal cases, multiple marks on NL and LL
worksheets, etc)dataset05 MaxLLF
MaxNLF vs. JAFROCdescriptions$fileName. This fixed problem with
expect_equal() failing depending on how the
goodValues were generated - from R
command line vs. Run Tests. Also, in creating
a dataset object, where appropriate, fileName <- “NA”
instead of fileName <- NA; the latter
generates a character expected error when an attempt is
made to strip path name and extension in convert2dataset
and convert2Xdataset.Var_i,
Cov2_i and Cov3_i. The modified formulae
reduce to Hillis’ formulae when the number of readers in each group are
identical. Communicated results to collaborator.MaxNLFAllCases FOM; see
comments in UtilMeanSquares(); regenerated one
goodValue file./toyFiles/FROC/1T3Rvs4R.xlsxrdrArr handling: this is done in
checkTruthTable, where SPLIT-PLOT-A is handled
separately;fileName to
descriptions$fileName field of
DfReadDataFile() return; this will keep a record of how the
dataset was generatedgoodValues
filesDfReadDataFile.R and
ReadJAFROCNewFormat.R and add more checks in the code for
illegal values.caseID column is used now in only 3 places to find the
correct case indices, where normal cases are ordered first, regardless
of how they are entered in the Truth worksheet:k <- which(unique(truthTableSort$CaseID) == truthTable$CaseID[l])
k <- which(unique(truthTableSort$CaseID) == NLCaseIDCol[l])
k <- which(unique(truthTableSort$CaseID) == LLCaseIDCol[l]) - K1
UtilOutputReport() for text output
onlyinst to
Dropbox.DfReadDataFile.R and testing code for
non-sequential lesionIDs in TRUTH
worksheet.grep.RJafroc to Iowa softwaretest-StCompare2Iowa.R in testthat
directory.RJafroc to results of
OR-DBM MRMC 2.51 Build 20181028 for VanDyke and Franken
datasets.RJafroc software is checked using
R CMD check.Var(R) and
Var(TR) values reported by
OR-DBM MRMC 2.51 Build 20181028 and RJafroc
for Franken dataset.max(Cov2 - Cov3, 0) constraint while RJafroc
does.RJafroc reports VarTR = -0.00068389146
while their code reports VarTR = -0.00071276.msTR - Var + Cov1 + max(Cov2 - Cov3, 0) = -0.00068389146
and msTR - Var + Cov1 + Cov2 - Cov3 = -0.00071276.VarR values (see block of
comments in UtilORVarComponentsFactorial near line 161).
Cov1, Cov2, Cov3 and
Var are the same between both codes.pss20190918.jar).LegacyCode
flag is provided to force execution of the original DBM method (2004
paper).Var(TR). Noticed a small difference in predicted power
between forced DBM (0.78574588) and OR methods (0.8004469).SsPowerGivenJKDbmVarCom.UpdateSsRoutines off the developer
branch.developer branch and
then to the master branch.dataset structuredatasets now are lists of length 3, with each
member (ratings, lesions,
descriptions) consisting of sub-lists:
ratings contain 3 elements: $NL,
$LL and $LL_IL.$lesions contains 3 elements: $perCase,
$IDs and $weights.$descriptions contains 7 elements:
$fileName, $type, $name,
$truthTableStr, $design,
$modalityID and $readerID.SimplifyDatasets off the developer
branch.developer branch and
then to the master branch.St
functionsRRRC branches etc to separate files; likewise
for DBM and OR branches, now the files are much shorter and easier to
maintainlist of
dataframes, see next comment; this makes for much cleaner
and easier printingSt functions:
list with data frames FOM, ANOVA,
RRRC, FRRC and RRFC.tests/testthat/test-St-Compare2Iowa.R for VanDyke
datasetRJafroc results against OR-DBM
MRMC 2.51 for dataset04 converted to ROC (see Iowa code
results in inst/Iowa/FedRoc.txt);UtilOutputReport considerably, by
using print(dataframe) instead of reading values from
list or dataframe variables and then using
sprintf with unreadable C-style format codesSPLIT-PLOT analysis by returning
Cov2 = Cov3 = 0 instead of
NAmaster branchmaster branch if it passes
TravisPlotEmpiricalOperatingCharacteristics, where
factors and levels are usedtest as otherwise different versions will give
factors or characters and not match those in
goodValues folderoptions(stringsAsFactors = FALSE) at beginning
of a function, e.g., StSignificanceTesting, passes this
option onto called functions, e.g, StDBMHAnalyisgetOption("stringsAsFactors") to determine state of
this option; must restart R to obtain default value
(TRUE on the release version); calling a function that sets
it to FALSE keeps the new value after exiting from
function; must restart R again to get proper default.stringsAsFactors explicitly
for each data.frame call, due to different defaults in
different verions of Roptions("stringsAsFactors" = TRUE), as this is
deprecatedstringsAsFactors arguments in all calls except…PlotEmpiricalOperatingCharacteristics, where factors are
usedR3.6.3
option($stringsAsFactors) = TRUE
(stringsAsFactors is case sensitive!)SsPowerTable() should set
options(stringsAsFactors = FALSE) explicitly at the
beginning of the code, in order to work in current and previous version
of R (i.e., release and old-release)PlotRsmOperatingCharacteristics and
FitCorCbmRoc) should set
options(stringsAsFactors = TRUE) in order to work in
developer version of R, where default is
options("stringsAsFactors") = FALSEtranspose for foms member of
StSignificanceTesting return objectmrmc_setup_w10_July_2019.exe; VanDyke
VanDyke.lrc dataset;
Dropobox/IowaSoftware/VanDyke.lrcOR DBM MRMC 2.51 <beta> Build 20181028 </beta>
miplmrmcVmWare Fusion; no luck, even after following directions
twice on websiteStSignificanceTesting -
WIPStSignificanceTesting(dataset02, method = "ORH", option = "FRRC")
- donetestthat all combinations of
method and option - doneStSignificanceTesting
depending on choice of option - almost doneRJafrocBook is klutzy
- WIPUtilVarComponentOR to allow
comparison with RJafrocBookcovEstMethod = jackknife,
bootstrap and DeLong for two datasetsdataset02 and dataset04 converted to
ROCmaster so that RJafrocBook
code passes TravisRJafrocBookRJafroc to eliminate code duplication
and improve style in all significance testing functions - move this to
issuesRJafrocBook)StSignificanceTesting(rocData1R, FOM = "Wilcoxon", method = "ORH")StSignificanceTestingSingleFixedFactor
which currently only handles DBMH method - add to
issuesStSignificanceTesting to
J > 1master so that RJafrocBook
code passes TravismsTCmsTC calculation in
UtilMeanSquaresRJafocBook, DBMH chapter, so there is at least one person
who benefited from RJafrocBookcovEstMethod argument to ORH
method to lower case (“jackknife” or “bootstrap”)optim when flipping groupsRJafroc/masterFZ_ALL.xlsx) from
extdata/datasets so I dont get file size error (extdata was
2.5 MB, reduced to 1.3)Compare3ProperRocFits.RRJafrocBook)StDBMHAnalysis.R that fixed test that I had to skip on mac
for context("SignificanceTestingAllCombinations"). Need to
get this fix (lines 45-51) over to cran2 branch as I am thinking of
splitting the package up by separating the cran2 branch as
the base package RJafroc and depending on
RJafroc for new package RJafroc2. This would
solve the file size problems that I am running into. Just an idea.developer branch on GitHub and
merged with master.cran2 1.3.1 called
cran2-fixoptions(stringsAsFactors = FALSE)R CMD check I set
options(stringsAsFactor=FALSE) near beginning of each
plotting function (3 functions) using data.frame() and
levels() to convert strings to factor levelsstringsAsFactor=TRUE in each call to
data.frame() where necessary.R CMD check successfullycran2-update/master branch for content relating to
this versionUtilPseudoValues.R to work with SPLIT-PLOT datainst/extdata/toyFiles/FROC/FrocDataSpVaryK1K2.xlsx.datasetFROCSp
corresponding to modalities 4,5 of dataset04Ch00Vig5SimulateSplitPlotDataset.Rmd.StORHAnalysis.R and to work with SP-A dataset
provided method = "ORH" and covEstMethod =
“jackknife” is used~Dropbox/RJafrocChecks/StfrocSp.xlsx for details.Ch00Vig5CreateSplitPlotDataset.Rmd; confirmed it is read
without error!!inst/FixRJafrocDatasets/ConvertDataset.R; worked on
DfReadDataFile function.xls input does not
work*; took it out as an allowed option; probably has to do
with openxlsxtruthTableStr with a data file that has only 1
and 3 lesions per case; was concerned about 4th dimension of
truthTableStr; see
Dropbox/RJafrocChecks/truthTableStr.xlsx for results of
checks; note that fourth dimension will be 4, even though there are no
cases with 2 lesionstruthTableStr -
more for my sakeinst/extdata/datasets; found missing file
SimulateFrocFromLrocDataset.R - not sure why I took it
out;truthTableStr in
Dropbox/RJafrocChecksOldFormat file when read creates
identical dataset to that created by NewFormat: basically
two Excel fiies are identical except old format lacks the three extra
columns; see checkDfReadDataFile.RUtilFigureOfMerit to accomodate split plot
dataset with varying number of cases for each readerinst/extdata/toyFiles/FROC/FrocDataSpVaryK1K2.xlsx that
really exercises the DfReadDataFile function (case index is
unsorted); resorted to data frames and sorting to successfully read it
(it is used in three places - truthTableStr, NL and LL). See
inst/extdata/testUtilFigureOfMerit/*.R for exercising
filestestsdevelopment branch while using
GitHub; decided to do Git manually.gitignore not working?DfReadDataFile()
DfReadDataFile() is usedDfReadDataFile() to allow for split
plot datasets completed.newExcelFileFormat = TRUE as otherwise the
code defaults to the old Excel format.TruthTableStr is created in
checkTruthTable() which is used in subsequent read NL and
LL worksheets.dataset03 which had -Infs for
1-ratings; need to check other ROC data files.DfReadDataFile().UtilMeanSquares() line 88
msTC <- msTC * J/((I - 1) * (Ktemp - 1)) has been
correctedtest-StSignificance-testing.R at line 128PlotEmpiricalOperatingCharacteristics() now accepts
ROC, FROC and LROC datasets.legend.position argument to allow better
positioning of legend.Ch19Vig1FrocSampleSize.Rmd: Compares FROC power to ROC
power.Ch19Vig2FrocSampleSize.Rmd: FROC power calculation for
a number of situations.SsFrocNhRsmModel(): constructs an RSM-based model,
which allows one to relate an ROC effect size to a wAFROC effect size,
and returns parameters of model to allow FOM estimation for ROC and
wAFROC. Following functions are used to calculate the lesion
distribution and lesion weights arrays:UtilLesionDistribution: renamed to
UtilLesionDistrUtilLesionWeightsDistr:StSignificanceTesting(): corrects errors affecting
method = "ORH" and covEstMethod = "Jackknife".
I messed up while trying to simplify XZ code. It calls:JAFROC on virtual Windows 8 machine and
saved results
(inst/VarCompDiscrepancy/includedFrocData_Inferred_ROC.txt) to validate
current significance testing functions. Included unit tests in
tests/testthat.StOldCode.R) to compare against current significance
testing code. Included unit tests in tests/testthat.gpfMyFOM(): interpolation error in LROC PCL and ALROC
FOMs. Hand calculations showed that the approx function did
not work for small datasets. Wrote my own simple interpolation code. See
LrocFoms() in gpfMyFOM.R. See
ChkLrocFoms.xlsx in inst/StSigTesting for
details on hand calculation of LROC FOMs.FPFValue, 0.2 or less.FPFValue to
accommodate LROC datasets.StSignificanceTestingCadVsRadiologists(): CAD results
updated (only values for FPFValue 0.2 or less were
affected); see CadFunctionTests.R in
inst/CadTesting. See
CadTestingNicoData.xlsx in
inst/CadTesting. Included unit tests in
tests/testthat.StSignificanceTestingCadVsRadiologists(): cleaned up
and now runs all FOMs.SimulateLrocDataset(): FROC to LROC simulator based on
RSM. Could be used for NH testing. RSM can now predict all paradigm
data.DfFroc2Lroc(): Simulates an “AUC-equivalent” LROC
dataset from an FROC dataset. This is neat!DfLroc2Froc(): Simulates an “AUC-equivalent” FROC
dataset from an LROC dataset.DfLroc2Roc(): convert LROC dataset to ROC dataset.dataset2ratings() has been corrected.SignificanceTesting functions now accept variance
components, without having to specify a dataset.UtilVarComponentsDBM():UtilORVarComponentsFactorial():SsPowerGivenJKDbmVarComp:SsPowerGivenJKOrVarComp:SsSampleSizeKGivenJ:SsPowerGivenJK:StSingleTreatmentRandomReader:FPFValue argument immediately follows
FOM, where applicable.StSignificanceTestingSingleFixedFactor:addPlot routine in
StSignificanceTestingCadVsRadiologists has been renamed to
CadVsRadPlots(). It should be deprecated in future as
PlotRsmOperatingCharacteristics() has more consistent
visual output (and capabilities like handling lists of treatments and
readers).isValidFom?SimulateLrocDataset() predict both
flattening out of LROC plot and wAFROC going to (1,1)?RJafroc
(note capitalization)Solaris failure (Peter
Philips)UtilPseudoValues.R that was caught
by testthatStSignificanceTesting.R that was caught by
testthat (Peter Philips)R CMD check generates testthat failure
when run under RStudio, see following output, but not when
run as devtools::test():* checking tests ...
Running ‘testthat.R’ [158s/160s]
ERROR
Running the tests in ‘tests/testthat.R’ failed.
Last 13 lines of output:
Component "Source": Attributes: < Component "levels": 3 string mismatches >
List member = 2, Dataset = dataset02, FOM = Wilcoxon, method = DBMH
── 2. Failure: SignificanceTestingAllCombinations (@test-significance-te
CurrentValues[[listMem]] not equal to GoodValues[[listMem]].
Component "Source": Attributes: < Component "levels": 3 string mismatches >
List member = 2, Dataset = dataset05, FOM = HrAuc, method = DBMH
travis-ci testing after each push; and build
passing badges, etc.caTools package, which was not
being supported; extracted function trapz() from it and
inserted directly into gpfMyFOM.R - see comments in that
file of what led to thisxlsx package, which requires
rJava and JAVA, replaced with dependence on
openxlsx package. Was having difficulty installing
rJava correctly after each OSX or
R update.UtilOutputReport.R.UtilOutputReport that was preventing
overwriting of existing output file, even when the user keys “y” in
response to promptCORCBM,
fitting and related functions to make package current with 2017 CORCBM
publication.PlotEmpiricalCharacteristics.R that was
giving incorrect plots for other than ROC and
wAFROC plotsChisqrGoodnessOfFit function, replacing 3
functionsgenericPlotROC.R instead of 3 functionsExampleCompare3ProperRocFits() to
Compare3ProperRocFits()Compare3ProperRocFits()QuickStartDBMH and
QuickStartDBMHExcelOutputrevdep("rjafroc") yields character(0)SsFROCPowerGivenJK: FROC power is
implemented in Online Appendix Chapter 19 (see email exchange with Kota
Aoyagi)A “shiny” based GUI has been added, accessed by the function
RJafrocGui(). This allows a user only interested in
analyzing a data file to access the underlying code in a “user friendly”
way. The GUI is similar in functionality to that of Windows JAFROC 4.2.1
software.
For the curve plotting functions, legend position and direction are automatically decided if they are not explicityly specified.
The the output number of significant digits for statistical power in power table has been set to 3.
Variance and covariance calculation error for ROI data has been fixed.
A bug in the JAFROC data reading function that caused an error when encountering non-numeric values has been fixed.
Floating point ratings are rounded to 6 significant digits when saving a dataset in JAFROC format.
A bug in the plotting routine that affected plots for a single rating FROC dataset has been fixed.
A bug in the plotting of AFROC curves for a dataset containing only non-diseased cases has been fixed.