Это не сильно уменьшает его (но, может быть, более читабельно?), Но использование 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'
}
}
}