Есть ли возможность уменьшить количество предложений if в программировании на R? - PullRequest
0 голосов
/ 07 мая 2020

Код, который у меня есть, выглядит так, я хотел бы более эффективно писать эти предложения на R? Может кто-нибудь, пожалуйста, мне помочь

if(!is.na(check_param)){
      if(tolower(gender)=="female" & (check_param)){
        if("param1" %in% names(named_vector1)){
          urine_params[["param1"]][["score"]] <- 4
          urine_params[["param1"]][["color"]] <- "6CCC2E"
        }
        if("param2"%in% names(named_vector1)){
          urine_params[["param2"]][["score"]] <- 4
          urine_params[["param2"]][["color"]] <- "6CCC2E"
        }
      } 
    }

1 Ответ

0 голосов
/ 07 мая 2020

Это не сильно уменьшает его (но, может быть, более читабельно?), Но использование isTRUE(...), объединение первых двух if statements и использование for-loop поверх paramX позволяет вам удалить 2 видимых if оператора . Однако на практике это только визуально и не удаляет на самом деле какие-либо операторы if.

if(isTRUE(check_param) && tolower(gender) == 'female'){
  for(i in paste0('param', 1:2)){
    if(any(i == names(named_vector1)){
      urine_params[[i]][['score']] <- 4
      urine_params[[i]][['color']] <- '6CCC2E'
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...