С учетом следующего определения уравнения:
For men: (10 x w) + (6.25 x h) - (5 x a) + 5
For women:(10 x w) + (6.25 x h) - (5 x a) - 161
Где:
w = weight in kg (1 pound = 0.45359237 kilograms)
h = height in cm (1 inch = 2.54 centimeters)
a = age (in years)
Определение категории фактора деятельности:
1.2 if sedentary, little or no exercise and desk job
1.375 if lightly Active, light exercise, or sports 1-3 days a week
1.55 if moderately active, moderate exercise, or sports 3-5 days a week
1.725 if very active, hard exercise, or sports 6-7 days a week
1.9 if extremely active, hard daily exercise or sports and physical job
Я пытаюсь построить обратноевычисление с учетом N-1 переменных.
Например, с учетом:
target_calories: 1500
gender: F
weight = 50
height = 170
What is her age?
age = (target_calories - ((10*w) + (6.25*h) + 5))/(-5)
Я пытаюсь обобщить это, и вот что я сделал до сих пор:
var_table <- tibble(gender = "M",
w_kg = w_kg,
h_cm = h_cm,
age = age,
activity_factor = activity_factor)
var2calc <- names(which(sapply(var_table, anyNA)))
Я могу решить эту проблему, используя множество операторов if-else, но я пытаюсь сделать это эффективным и элегантным.
Я подумал о вычислениях в приведенном выше tibble var_table + dplyr verbs
и, учитывая отсутствующее значение переменной, вычислил его согласнок определенной формуле.
Посоветуйте, пожалуйста, как лучше всего это сделать?