Skip to content

Commit 3277e71

Browse files
committed
Revert removed validations
1 parent 26d548a commit 3277e71

1 file changed

Lines changed: 71 additions & 1 deletion

File tree

R/analyse.R

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,27 @@ ModelArray.lm <- function(formula, data, phenotypes, scalar, element.subset = NU
187187
var.model <- var.model.full
188188
}
189189

190+
# check on validity of list of vars:
191+
var.terms <- var.terms[!duplicated(var.terms)]
192+
var.model <- var.model[!duplicated(var.model)]
193+
194+
# check if all var.* are empty:
195+
if (length(var.terms) == 0 && length(var.model) == 0) {
196+
stop("All var.* arguments [var.terms, var.model] are empty!")
197+
}
198+
199+
# check if every var is valid:
200+
for (var in var.terms) {
201+
if (!(var %in% var.terms.full)) {
202+
stop(paste0(var, " is not valid for var.terms!"))
203+
}
204+
}
205+
for (var in var.model) {
206+
if (!(var %in% var.model.full)) {
207+
stop(paste0(var, " is not valid for var.model!"))
208+
}
209+
}
210+
190211
# P-value correction checks ----
191212
check_validity_correctPValue(
192213
correct.p.value.terms, "correct.p.value.terms",
@@ -417,9 +438,58 @@ ModelArray.gam <- function(formula, data, phenotypes, scalar,
417438
var.model <- var.model.full
418439
}
419440

441+
var.smoothTerms <- var.smoothTerms[!duplicated(var.smoothTerms)]
442+
var.parametricTerms <- var.parametricTerms[!duplicated(var.parametricTerms)]
443+
var.model <- var.model[!duplicated(var.model)]
444+
445+
if (length(var.smoothTerms) == 0 && length(var.parametricTerms) == 0 && length(var.model) == 0) {
446+
stop("All var.* arguments [var.smoothTerms, var.parametricTerms, var.model] are empty!")
447+
}
448+
449+
for (var in var.smoothTerms) {
450+
if (!(var %in% var.smoothTerms.full)) {
451+
stop(paste0(var, " is not valid for var.smoothTerms!"))
452+
}
453+
}
454+
for (var in var.parametricTerms) {
455+
if (!(var %in% var.parametricTerms.full)) {
456+
stop(paste0(var, " is not valid for var.parametricTerms!"))
457+
}
458+
}
459+
for (var in var.model) {
460+
if (!(var %in% var.model.full)) {
461+
stop(paste0(var, " is not valid!"))
462+
}
463+
}
464+
420465
# Changed.rsq setup ----
466+
var.model.orig <- var.model
421467
if (!is.null(changed.rsq.term.index)) {
422-
terms.full.formula <- stats::terms(formula)
468+
469+
# check if the term index is valid:
470+
if (min(changed.rsq.term.index) <= 0) {
471+
stop(
472+
"There is element(s) in changed.rsq.term.index <= 0. ",
473+
"It should be a (list of) positive integer!"
474+
)
475+
}
476+
477+
terms.full.formula <- stats::terms(formula, keep.order = TRUE)
478+
479+
if (max(changed.rsq.term.index) > length(labels(terms.full.formula))) {
480+
stop(
481+
"Largest index in changed.rsq.term.index is more than the term number on the ",
482+
"right hand side of formula!"
483+
)
484+
}
485+
486+
if (length(labels(terms.full.formula)) == 0) {
487+
stop(
488+
"Trying to analyze changed.rsq but there is no variable (except intercept 1) ",
489+
"on right hand side of formula! Please provide at least one valid variable."
490+
)
491+
}
492+
423493
changed.rsq.term.fullFormat.list <- labels(terms.full.formula)[unlist(changed.rsq.term.index)]
424494
changed.rsq.term.shortFormat.list <- list()
425495
for (idx in seq_along(changed.rsq.term.index)) {

0 commit comments

Comments
 (0)