Я пытаюсь объединить несколько действий в одном выражении ifelse.Второе действие работает с первым и так далее, но я получаю предупреждение об ошибке: «операции возможны только для числовых, логических или сложных типов».
Ошибка относится к данным, которые я создал ранее, иэто рабочий каталог, сохраненный как символ.Поэтому я не могу изменить его на числовой, логический или сложный.Я попробовал, но это становится NA.
Использование as.factor приводит к тому же предупреждению об ошибке.Когда я запускаю код шаг за шагом, ошибки не возникает, она возникает только в том случае, если я запускаю весь оператор ifelse.
Проблема возникает в строке оператора ifelse "meta_nam <- paste (folder,".xlsx", sep = "") "</p>
Я думаю, что проблема заключается в" папках ".Данные выглядят так: «O: / data / Projekt / a»
condition1 <- as.Date(sub(".*/(.*)","\\1",x), "%Y.%m.%d")>as.Date("2017-03-05")
ifelse(condition1==T, yes=((meta_nam <- paste(folders, ".xlsx", sep="")) &
(exist <- file.exists(meta_nam)) &
(for (i in 1:length(folders)) {
if(exist[i]==F)
{stop(paste("Meta-Excel fehlt fuer: ", folders[i]))}}) &
(me=lapply(meta_nam, function(y) read_excel(y))) &
(me=lapply(me, function(y) as.data.frame(y[!is.na(y$dID),
seq(which(colnames(y)=="dID"), which(colnames(y)=="parameter_stop")-1)]))) &
(me=lapply(me, function(y) y[,colSums(is.na(y))<nrow(y)])) &
(me=lapply(me, function(y) y[rowSums(is.na(y))<(ncol(y)-1),])))
, no=((meta_nam=paste(folders, ".csv", sep="")) &
(exist=file.exists(meta_nam)) &
(for (i in 1:length(folders)) {
if(exist[i]==F)
{stop(paste("Meta-Excel fehlt fuer: ", folders[i]))}}) &
(me=lapply(meta_nam, function(y) read.table(y, sep="\t", header=T, stringsAsFactors=F))) &
(me=lapply(me, function(y) y[,colSums(is.na(y))<nrow(y)])) &
(me=lapply(me, function(y) y[rowSums(is.na(y))<(ncol(y)-1),]))))
Идея использования оператора ifelse заключается в том, чтобы сократить время выполнения до того, как я использовал if ... else ...аргумент, проблем не было.