我正在制作一个营养分数计算器.作为一个简化的例子,计算器将食物的(1)纤维含量和(2)食物类别作为输入,并根据其纤维含量输出产品的健康分数.
然而,纤维的评分会根据产品所属的食物类别进行调整.例如,在下面的代码中,纤维值为1的A类产品应得3分,但纤维值为1的B类产品应得6分.
library(tidyverse)
product_category <- tibble(
food_type = c("Fruits", "Vegetables"),
category = c("Category A", "Category B")
)
score_schedule_a <- tibble(
fibre_amount = c(1, 2, 3),
score = c(3, 6, 9)
)
score_schedule_b <- tibble(
fibre_amount = c(1, 2, 3),
score = c(6, 12, 18)
)
我认为最后一个函数是这样开始的:
score_calculator <- function(fibre, food) {
category <- product_category %>%
filter(food_type == food) %>%
pull(category)
}
但我不知道如何使用category
来指定在计算分数时查找哪个表.从这里开始的步骤应该是,我们使用category
来决定使用score_schedule_a
或score_schedule_b
中的哪一个,然后取函数中输入的纤维值来得出关联的分数.
因此,预期功能的一些示例如下:
score_calculator(2, "Vegetables")
表示输出12
.
score_calculator(1, "Vegetables")
给出输出6
.
score_calculator(1, "Fruits")
表示输出3
.
How can I pass which table to look up as an argument to my function?个