Я наткнулся на следующий пост: Векторизованный оператор IF в R? , который имеет дело с vecotrisation одной конструкции if-else в R. Однако я не хочу создавать вложенные функции $ ifelse $ в R, есть ли другой способ сделать это?
В качестве примера у меня есть это:
library(data.table)
precalc_nrcolumns <- function(TERM_DATE, CHANGE_DATE){
if(CHANGE_DATE < TERM_DATE){
if(CHANGE_DATE == 0) {
if(TERM_DATE > 100) {
nrcolumns <- 100
}else{
nrcolumns <- TERM_DATE
}
}else{
nrcolumns <- CHANGE_DATE
}
}else{
nrcolumns <- 100
}
return(nrcolumns)
}
test.data <- data.table(TERM_DATE = sample(1:500, 100, replace=TRUE),
CHANGE_DATE = sample(1:500, 100, replace=TRUE))
test.data[, value := mapply(precalc_nrcolumns, TERM_DATE, CHANGE_DATE)]
Я полностью осведомлен об использовании mapply, который на самом деле работает, но мне было интересно, какие есть другие способы борьбы с этим.