如何在if-else语句中组合多个动作

时间:2019-04-29 09:20:35

标签: if-statement

我正在尝试在一个ifelse语句中组合多个动作。第二个动作正在与第一个动作一起使用,依此类推,但是我得到了错误警告:“操作只能用于数字,逻辑或复杂类型”。

错误是指我之前生成的数据,它是一个工作目录,另存为字符。因此,我不能将其更改为数字,逻辑或复杂。我试过了,但是变成了NA。

使用as.factor会导致相同的错误警告。 当我逐步运行代码时,没有错误,仅当我运行整个ifelse语句时才会发生。

问题发生在ifelse语句“ meta_nam <-paste(文件夹,“ .xlsx”,sep =“”)“的行中

我认为“文件夹”是问题所在。数据看起来像:“ 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 ...参数之前,没有问题。

0 个答案:

没有答案