Published on Github 2020-07-24 and submitted to CRAN.
path.in or path.out (if print=TRUE | plot.bxp=TRUE) is not given. Previously the user’s home folder "~/" was automatically used. Man-pages updated accordingly.normalizePath() in get.data.R and info.env.R for clarity (i.e., the OS-dependent full path is given in the result-file).graphics.off() from the beginning of get.data.R. Caused the error in check() where a PDF is created.plot.bxp = FALSE.Published on Github 2020-04-08, on CRAN 2020-04-09.
DF obtained by method.B(..., data = rds30, option = 1) from 17.86418 to 17.86417 and reduced tolerance in function expect_equivalent() of testthat from 5e-7 to 1e-6. Prevents errors with r-devel on Linux and r-patched on Solaris. Required due to changed default tolerance settings in v.1.1-23 of package lme4 of 2020-04-07. Not relevant because the CI passed the test already with the more strict tolerance and in practice only four to five significant digits (not seven) are required for the CI. Furthermore, all tests passed with the current release (R3.6.3) on all operating systems.README.Published on Github 2020-01-09, on CRAN.
ext to lower-case. Mixed-case threw an error.as.data.frame(read_excel(..., col_names = FALSE, .name_repair = "minimal")) in get.data(). Since the file may contain a commentary header, we need col_names = FALSE and construct the names later (i.e., the default col_names = TRUE is not possible).verbose = TRUE in all methods: print(anova(...), digits = 6, signif.stars = FALSE).verbose = TRUE. Added response to verbose-output of method.B (automatically in method.A).write.csv(rds01, 'rds01.csv', quote = FALSE, row.names = FALSE) naïvely uses just write.csv(rds01, 'rds01.csv')).method.B(): rds29 and rds30 instead of rds18. Satterthwaite DF (..., option = 1) and Kenward-Roger (..., option = 3).rds29 (TRTR|TRTR, n=12), rds30 (TRR|RTR|RRT, n=14). Requested by a reviewer of the manuscript.Published on Github 2019-11-11, on CRAN (carnival release).
README.CV.calc.R when at least one studentized outlier is detected but no standarized outlier.README.README.Rmd and vignette (THX to Yihui Xie on r-help for the latter).Published on Github 2019-08-25, on CRAN.
NULL to the user’s home folder "~/".print(..., , digits = 7) if verbose = TRUE. More significant digits not needed since given in the result data.frame in full precision anyway.README.Rmd knitted to README.md.Published on Github 2019-07-24, on CRAN.
hyperref.sty is corrupt or missing (local rendering works on Windows and Linux). Therefore, on CRAN in the PDF-manual URLs in references are converted to truncated (i.e., wrong) URLs in footnotes. Notified Uwe Ligges.na where found (THX to Igor Rubets).README.md included.NEWS.md instead of NEWS.info.data().Published on Github 2019-07-22, on CRAN.
importFrom(pbkrtest, getKR) since error on win-builder.r-project.org'pbkrtest package required for Kenward-Roger's method' (not locally!)logtrans = TRUE if a user asks for an internal dataset which does not have the column logPK.method.B (..., option = 3).get.data() if na-specifier does not match the data in columns PK and/or logPK.logPK only in rds01 and rds02 because given by the EMA. Removed in rds06, rds12, rds14, rds18, rds19, rds20, rds21 (TRTR|RTRR) and rds03, rds17 (TRT|RTR). Man-pages corrected. Reduces the footprint of the library by 5%.path.in and/or path.out not given or specified folder does not exist: Changed cat() to warning().method.A().suppressMessages() no more needed (vignette and testthat). Issue orginating in rlang and ggplot2 resolved. Both packages don’t contain a NEWS file. THX Hadley for leaving us out in the dark!stringsAsFactors = FALSE in res-list of all methods.options(ow) after models (THX to DL).method.A() and the vignette.Published on Github 2019-06-14, on CRAN.
on.exit(...) immediately after changing an option).Published on Github 2019-06-14, on CRAN.
Published on Github 2019-06-12, submitted to CRAN (passed checks at R-release and R-devel).
\list{}{}. Note that this is discouraged acc. to the R-Extension Manual 2.1.1!\tests for testthat().{\eqn{foo\textsubscript}{bar}} to the simple {\eqn{foo_{bar}} in two man pages.StartupWarnings seemingly unavoidable until rlang will be corrected.CV.calc(). Studentized/standardized does not exactly agree with SAS (uses type = 2 by default).Published on GitHub 2019-05-30.
info.data().get.data() CSV-file: Issue with characters in the header which were == sep resolved. [MT]get.data() Sub/seq in data.frame was empty for complete sequences.info.env() returned path.out as path.in.method.A().get.data(). Calculation was correct but output in result-files wrong.nTT was NA in get.data() for TRTR|RTRT. Now design (full/replicate) is obtained from info.design().CV.calc(..., ole = TRUE) if an outlier is detected not in both methods (studentized, standardized).method.B(option = 1) output to file.PowerTOST T is always first. The order is only relevant in method.A(..., adjust = TRUE) and an unbalanced RTR|TRT-design. In this case the order of subjects/sequence is reversed by calling scABEL(..., n = rev(ret$Sub.Seq)). THX to DL for discovering this bug.repBE) acc. to rlang issue 669 (THX to MT).CHECK dissappeared in R 3.6.0. Throws other ones in examples which change the working directory. Wrapped all examples in man-pages in \dontrun{}.subject (any order is acceptable). Now the word ‘subject’ is allowed in the header.set can be an empty string "" to support reading from CSV- files. Only required for XLS (the name of the sheet) now.fence for box plots instead of the hard-coded 3 as a multiplier of IQR. The default 1.5 in most (all?) software packages detects a lot of outliers. 3 seems to be too liberal. The new default 2 is a compromise.PowerTOST and the EMA’s Q&A dataset II.CHECK about undocumented objects.info.data() (THX to DL). Function which.data() removed.method.A(adjust = TRUE) assesses additionally the empiric type I error based on the recalculated CVwR (if applicable).get.data() for such a case.ABE() has new arguments theta1 and theta2 (defaults 0.80 and 1.25). Useful for NTIDs (EMA) or wider limits of Cmax (GCC).info.design(). Sorts sequences according to the preferred order (T first) and throws a message if the design is untested.lme/lmer).Lazy data: true in DESCRIPTION allows direct access of objects within data().Released to collaborators 2017-06-24.
sep are lost.method.B(option = 1) can’t print to file with internal data.which.data(): ref to rds. Warnings in CHECK: 'rdsXX' not found.Released to collaborators 2017-06-23.
foo(path.in = path.in, ...) but the variable path.in is not defined before. Throws object 'path.in' not found in CV.calc().'descr' was read from an external file and the code stopped for data not matching the id in which.data().'subject'.path.in the file browser opens on Windows (other operating systems?).verbose=TRUE the anova was not shown in ABE().which.data(): returns data.frame 'id' of checksum (MD5), file “DS”, set (“01”, … “XX”), ref (“refXX”), descr. Used in get.data() to obtain required variables of the currently attached internal data set based on its MD5-checksum.";" to "," (more common). Suggested by DL.CV.calc from NAMESPACE. Man-page not needed any more. THX to DL!subset() in get.data() and CV.calc() by direct assignment. No need for the hacks any more.data(ref02) followed by print(ABE(details = TRUE, print = FALSE, data = data)) works. Problems: The descriptive header (variable descr) doesn’t exist in the internal data set as well as its name. Hence, the same with the default print = TRUE in all functions gives an error. Stupid: The data set must be chosen outside of the function call. foo(data = data(ref02)) gives an error.data = NULL (default NULL) to top-level functions.method.B(): Changed print(anova.lm(modB)) to print(anova(modB)). [DL]NAMESPACE. [DL]\data and the documentation. All data sets observe the pattern refXX.rda in order to come last in the man-page.Released to collaborators and beta-testers 2016-06-19.
ABEL to replicateBE since ABE is now supported as well.ABE() for conventional (unscaled) ABE.\data\ref01.rda (already factorized data.frame) and man-page.enf.info(): If path(s) NULL, show the user’s home folder in the lines Input from and Output to.Released to collaborators and beta-tester Mahmoud Teaima 2016-06-19.
plot.bxp. If FALSE (default) the boxplot will be shown in the default graphics device. If TRUE the boxplot will be saved in PNG format (720×720 px) to path.out. Argument ask is also observed.path.in and/or path.out not given or not existing, the user’s home folder will be used. Updated the man pages accordingly.Released to collaborators and beta-tester Mahmoud Teaima 2016-06-18.
ask (default FALSE). If TRUE and a result file already exists, the user is asked whether it should be overwritten.lme4 from listed packages in env.inf(). lmer, summary, and anova obtained from lmerTest.get.data() name of file from "_results_" to "_ABEL_".get.data(): path.out only required if print = TRUE. Default path.out in method.A() and method.B() set to NULL.Released to collaborators and beta-tester Mahmoud Teaima 2016-06-16.
method.A() if adjust = TRUE.path (used for in- and output) substituted by variables path.in and path.out.env.info(), get.data(), CV.calc(), method.A(), method.B() stand-alone in order to support package-building.method.A(): Changedlm(foo ~ subject + period + treatment, data)lm(foo ~ sequence + subject%in%sequence + period + treatment, data)verbose = TRUE). [suggested by Mahmoud Teaima]Released to collaborators 2016-06-11.
env.inf() only the packages which are used by the respective functions.readxl. Throws a message if the installed version is <1.0.0. Is there a method to automatically update a package?Released to collaborators and beta-tester Mahmoud Teaima 2016-06-01.
verbose = TRUE.DF and alpha up after the number of subjects. More logical to me.CVwR is recalculated and BE is additionally assessed based on the new limits.ola = TRUE) for the reference. Defaults to FALSE. Studentized and standardized residuals are calculated and shown in box plots. Note: Only standardized (a.k.a internally studentized) residual are available in Phoenix WinNonlin.Released to collaborators and beta-tester Mahmoud Teaima 2016-12-16.
";" and "."nTR <12. Suggested by MT.nRR <12 in one of the full replicate 3-period designs (acc. to the EMA’s Q&A Rev. 12).verbose (default FALSE) to method.A()/method.B() to support detailed information without debugging.'/' in the path-argument from method.A()/ method.B() to get.data().lmer/lmerTest from v0.83 to support comparing the performance of packages. Wish of DL.Released to collaborators and beta-tester Mahmoud Teaima (Faculty of Pharmacy, Cairo University) 2016-12-14.
Miss.per for data sets with NA = '.' fixed. [MT]path does not exist, R’s working directory is used with a warning. [MT]Released to collaborators 2016-12-14.
names(Miss.per) is removed (not used in output). [MT]Miss.seq and Miss.per in get.data(), unnecessary function complete() removed. [MT]Released to collaborators 2016-12-14.
lmer/lmerTest (was called by option = 1 in previous versions), since Satterthwaite’s DF are not compliant with the EMA’s Q&A document (the SAS-code uses implicitely DDFM = CONTAIN).DF of the treatment difference to the output.Released to collaborators 2016-12-11.
complete() to construct a data.frame of complete data based on the subjects and design. Called by get.data() to calculate the number of missing values independent whether the DS contains this information (NA in PK) or not. Not vectorized yet.Miss.seq: Missings / sequence.Miss.per: Missings / period.Released to collaborators 2016-12-10.
na.action = na.omit to lme() since its default (na.fail) stopped the model.method.B() from option = 1 to option = 2. No DDFM applied. lme4/lmerTest (option = 1) - like Phoenix WinNonlin by default - uses Satterthwaite’s DF.PK and logPK) to lower case. Stops if variables are not coded as subject, period, sequence, and treatment.R and T.Released to collaborators 2016-12-09.
(.) removed before names of variables. [MT]Released to collaborators 2016-12-09.
Nsub.seq fixed. [MT]/ is added to the path if not present. [MT]method.B() (_lmer or _lme). [MT]lme4 is added to the list of packages (it was an implied subroutine call from lmerTest). [MT]Released to collaborators and beta-tester Jiři Hofmann 2016-12-07.
Nsub.seq in DA12 (with N=77) falsely gave 149 in both sequences.res$CI and res$GMR instead of unique().Released to collaborators 2016-12-02.
sequence+subject%in%sequence+period according to the EMA’s Q&A (setup in SAS) and the templates of Phoenix WinNonlin. Note that for unique coding of subjects the nested structure is superfluous / the model overspecified . The more simple model subject+period gives exactly the same residual error.Released to collaborators 2016-11-28.
readxl. Cave: If the sheet(s) contains a commentary header, in the argument skip the number of rows not to be used must be given.Released to collaborators 2016-11-27.
CV.calc() (suggested by DL). Moved the calculations from get.data(). Adapted calls in method.A() and method.B().Nsub.seq [MT].Released to collaborators 2016-11-26.
adjust = TRUE for an unsupported design.Released to collaborators 2016-11-24.
PowerTOST for assessment of the empiric type I error and (optionally) iteratively adjustment of α (only Method A). New argument adjust (default FALSE). Results only to the console. Changed hard-coded parts to the respective functions of PowerTOST.logtrans (default TRUE). If TRUE, the raw data (column PK) are internally log-transformed. If FALSE the already log-transformed data (column logPK) are used.logPK. If erroneously a call is made with logtrans = FALSE (and the column logPK is missing), the code switches to internal log-transformation (as if logtrans = TRUE would have been called) and throws a warning.res.Released to collaborators 2016-11-23.
method.B() has a new argument option: 1 (default) evaluates by lmerTest() and 2 by nlme().print (default TRUE) and details (default FALSE).foo(..., print = FALSE, details = TRUE) returns a data.frame of results in full precision.intervals() instead of a hard-coded confidence interval [DL].nlme. [MT]Released to collaborators 2016-11-22.