我正在编写的程序使用一个电子表格进行评分,然后创建其接收到的数据的表格,图表和摘要。但是,我希望多个用户能够使用它。这意味着每种类型的成绩(作业,测验,测验等)的权重对于每个用户而言都是不同的。
我想做的是创建一个checkboxGroupInput,该列表生成不同等级等级的列表(从电子表格的“类型”列中读取),然后在选中每个复选框时会弹出一个numericInput,允许用户选择重量。这是示例图片。
Example Pic (对不起,我现在没有足够的声誉来发布图片)
但是,我不知道如何将numericInput呈现为每个复选框的True / False值。我知道如何根据组输入来呈现表以显示列,例如在this example中,但是我不知道如何初始化未知数量的numericInputs,因为每个输入都是其自己的变量。这可能吗?我想不出另一种方法来实现自己想要的。
这是我到目前为止的代码(摘要)。
ui <- fluidPage(
dashboardBody(
tabBox(
id = 'tabset1',
width = '100%',
tabPanel('Enter weights',
splitLayout(uiOutput('type'), uiOutput('weight'))),
tabPanel('Grades Graph', plotOutput('individualGraph')),
tabPanel('Grades Table', dataTableOutput('summaryDT')),
tabPanel('Summary by Unit', plotOutput('summaryBarGraph'), br(), dataTableOutput('summaryUnitDT')),
tabPanel('Class Averages', plotOutput('classAverageGraph'), br(), dataTableOutput('classAverageTable'))
)
)
server <- function(input, output, session) {
output$type <- renderUI({
df <- data.frame(grades())
choices <- unique(pull(df, Type))
checkboxGroupInput(inputId = 'typeVar',
label = 'Select Type',
choices = choices,
selected = choices)
})
output$weight <- renderUI({
numericInput(inputId = 'weightVar',
label = 'Select Weight %', value = 50,
width = 50)
})
}
任何帮助/指导将不胜感激!如果我认为这是实现我想要的最好方法的错误,请告诉我。我愿意接受更多建议。
答案 0 :(得分:0)
首先,checkboxGroupInput()在这里有意义吗?似乎单选按钮UI元素与您要做的更好的事情匹配(因为单选按钮向用户暗示一次只能检查一个)。其次,您可以尝试使用一个数字输入并使用updateNumericInput()来在单选按钮更改时对其进行更改吗?然后,在处理数字更改时,您的条件语句只需要查看数字以及选中了哪个单选按钮即可。
我正在设想这样的事情:
observeEvent(input$RadioButton, {
updateNumericInput(session, "NumericInputName", value=theVariable)
}
其中变量是先前为该类别(测试,测验等)输入的值,如果没有为该类别输入任何内容,则为0。