r - 如何将输出对象中的值作为输入提供给另一个输出对象?
问题描述
我正在开发一个基于模拟的应用程序。我有 2 个初始数字输入对象,“max imp count”和“population size”。根据输入这些数字输入对象的内容,应用程序生成另外 2 个输入对象(实际上作为输出对象)-“select_proportion”和“select_probability”。如果“max imp count”为 3,则应用程序应生成 8 个新输入对象 - 4 个请求比例(proportion0、proportion1、proportion2、proportion3),其中 4 个请求probability0、probability1、probability2 和probability3。我想将这些比例和概率值输入以下列方式工作的示例函数:
1) sample(c(0,input$max_imp, 1), size=input$population, replace=TRUE, prob=这些取比例值
所有比例括号的二进制值的样本:
2)样本(c(0,1),长度(比例_i),替换=真,概率=这些取概率值)
理想情况下,我希望将这一切都放在一个数据框中,其中我有记录所属比例括号的列以及它们是 0 还是 1。
代码:
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(title = "Simulation"),
dashboardSidebar(
sidebarMenu(
numericInput("max_imp", "max imp count", 0, min = 0, max = 15, step = 1),
numericInput("population", "population size", 1, min = 0, max = 100000, step = 1),
menuItemOutput("menuitem")
)
),
dashboardBody(
uiOutput("select_proportion"),
uiOutput("select_probability")
))
server <- function(input, output) {
output$select_proportion = renderUI(
lapply(0:(input$max_imp), function(i){
numericInput(inputId = "i1", label = paste0("proportion",i), 0, min = 0, max = 1, step = 0.05)}))
output$select_probability = renderUI(
lapply(0:(input$max_imp), function(i){
numericInput(inputId = "i2", label = paste0("probability",i), 0, min = 0, max = 1, step = 0.05)}))
}
# Run the application
shinyApp(ui = ui, server = server)
解决方案
您的输出元素只是 UI 容器,然后填充了 renderUI 函数中定义的输入元素。您可以像使用其他输入一样轻松访问这些输入元素的值。
这里唯一的事情是您必须以动态方式设置输入的 ID,例如,而不是id = "i2"
用于第二次输入id = paste("input", i, "2", sep = "-")
。这将为您创建input$max_imp + 1
不同的输入。然后可以通过 访问这些值input$input_1_2
。
BR塞巴斯蒂安
推荐阅读
- javascript - 在添加输入框时动态调整 div 的大小
- python - Python绘图到PDF多个数字
- javascript - JS 中的展开/休息运算符是如何工作的?
- c# - 在视图 asp 中提供标识符后,如何使用主数据部分填充事务视图?
- swift - Swift组合自定义发布者:存储对订阅者数组的引用?
- django - 如何在 24 小时后自行生成令牌?
- xcode - 无法删除我的 xcode 项目的副本,因为“它正在使用中”
- c# - 使用 iOS Safari 模拟器在 Visual Studio 中进行调试
- c# - 自定义 Windows 身份验证 Blazor 返回 AppPool
- powershell - RunSpace 及其关闭