У меня есть следующая структура:
df <- head(mtcars[,c("cyl","disp","hp")])
criteria <- data.frame("cyl" = c(3,8), "disp" = c(180,380), "hp" = c(90,120),row.names = c("min","max"))
df
cyl disp hp
Mazda RX4 6 160 110
Mazda RX4 Wag 6 160 110
Datsun 710 4 108 93
Hornet 4 Drive 6 258 110
Hornet Sportabout 8 360 175
Valiant 6 225 105
> criteria
cyl disp hp
min 3 180 90
max 8 380 120
Теперь я хочу создать новый столбец, который сначала проверяет критерии в соответствии с фреймом данных критериев, а затем вычисляет соотношение. Например, я хочу создать столбец с именем «disp / cyl», который должен сначала проверить, что столбцы disp и cycl находятся в пределах минимума и максимума в соответствии со столбцом критериев. Если это так, то при расчете следует использовать соотношение disp / cyl. Если это не так, он должен просто вернуть 0. Аналогично, я хочу сделать то же самое со столбцом, называемым «hp / disp», где он должен проверять disp и hp соответствовать min и max, а затем вычислять отношение hp / disp иначе он должен просто вернуть 0.
Возможно ли это как-то все сразу? Как бы я выстроил критерии?