Решение линейного уравнения в тибле? - PullRequest
1 голос
/ 30 апреля 2019

С учетом следующего определения уравнения:

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 и, учитывая отсутствующее значение переменной, вычислил его согласнок определенной формуле.

Посоветуйте, пожалуйста, как лучше всего это сделать?

...