如何从checkboxGroupinput获取矢量字符输入并将其转换为数字分数

时间:2019-03-26 02:50:43

标签: r shiny

我正在尝试创建一个闪亮的应用程序,该应用程序将根据用户的响应来计算分数。使用checkboxGroupInput捕获用户的输入很重要。我知道该功能可以通过返回带有选定选项的字符向量来实现。

checkboxGroupInput的选择如下:“ CHF”,“高血压”,“中风/ TIA /血栓栓塞病史”,“血管疾病”,“糖尿病” 每个选择都会得到一个分数在用户做出选择之后,我想根据选择返回一个总得分值。每个选项的得分如下:“ CHF” = 1“高血压” = 1“中风/ TIA /血栓栓塞史” = 2“血管疾病” = 1“糖尿病” = 1

   checkboxGroupInput(inputId = "PMH", 
                         label = "Past Medical History",
                         choices =  c("CHF", "Hypertension", 
     "Stroke / TIA/Thromboembolism history", "Vascular disease", "Diabetes"))

我希望根据用户的选择,闪亮的输出将成为总分。 因此,我想根据用户的选择将字符向量输入转换为总的数字分数。 我认为可以归结为120种可能的组合 以下是一些示例: 如果他/她没有选择,则总分应为0 如果他/她选择了所有选项,则总分应为6 如果他/她选择了“ CHF”和“中风/ TIA /血栓栓塞史”,则总分应为3 如果他/她选择了“ CHF”和“中风/ TIA /血栓栓塞史”和“血管疾病”得分为4 输出应该是被动的,因此如果用户更改选择以自动重新计算分数

非常感谢

1 个答案:

答案 0 :(得分:0)

您可以使用分数创建命名向量:

scores <- c(
  "CHF" = 1, 
  "Hypertension" = 1, 
  "Stroke / TIA/Thromboembolism history" = 2, 
  "Vascular disease" = 1, 
  "Diabetes" = 1
)

input$PMH中,您有一个包含某些疾病的媒介,例如:

x <- c("CHF", "Vascular disease") # example of input$PMH

然后您将获得如下总分:

sum(scores[x])