Я написал цикл for для проверки различных настроек функции ординации в R (пакет "vegan", вызываемый "phyloseq").У меня есть несколько подмножеств моих данных в списке (sample_subset_list
), и поэтому проверка различных параметров для всех этих подмножеств приводит к множеству комбинаций.
Функция ординации содержит необязательный аргумент formula
, и я хотел бывыполнять мои рукоположения с и без формулы.Я полагаю, NULL
будет правильным способом не использовать параметр formula
?Но как мне передать NULL
при использовании цикла for (или применить и т. Д.)?
Используя данные примера phyloseq:
library(phyloseq)
data(GlobalPatterns)
ps <- GlobalPatterns
ps1 <- filter_taxa(ps, function (x) {sum(x > 0) > 10}, prune = TRUE)
ps2 <- filter_taxa(ps, function (x) {sum(x > 0) > 20}, prune = TRUE)
sample_subset_list <- list()
sample_subset_list <- c(ps1, ps2)
Я пытался:
formula <- c("~ SampleType", NULL)
> formula
[1] "~ SampleType"
ordination_list <- list()
for (current_formula in formula) {
tmp <- lapply(sample_subset_list,
ordinate,
method = "CCA",
formula = as.formula(current_formula))
ordination_list[[paste(current_formula)]] <- tmp
}
таким образом, formula
состоит только из "~ SampleType".Если я поставлю NULL в тиках, это будет неправильно интерпретировано как формула:
formula <- c("~ SampleType", "NULL")
Error in parse(text = x, keep.source = FALSE)
Как правильно решить эту проблему?
Относительно ответа Лизандера:
# make sure to use (as suggested)
formula <- list("~ SampleType", NULL)
# and not
formula <- list()
formula <- c("~ SampleType", NULL)