r - 在 R Shiny Server.R 函数中提取列表输入的值
问题描述
我有以下输入变量:
- no_of_structures
- no_of_legs_in_structure
我在 ui.R 函数中定义了输入变量 no_of_structures 然后在 server.R 函数中定义了变量 no_of_legs_in_structure。我试图通过下面的代码(output$test3)提取用户为每个“no_of_legs_in_structure”输入的“值”并且失败了。
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
#Enter Number of Structures to Analyse
numericInput(inputId = "number_of_structures",
label = "enter number of structures",
value = 1,
min = 1,
max = Inf,
step=1),
uiOutput("test2")
),# closing bracket for sidebarPanel
mainPanel(
textOutput("test1"),
uiOutput("test3")
)#closing for mainPanel
)#closing bracket for sidebarLayout
)#closing bracket for fluidPage
############ Below is code for server
server <- function(input, output){
#printing the number of structures entered by user
output$test1 <- renderText(paste0("number of structures entered by user are:- ", input$number_of_structures))
# Enter number of legs for each structure
no_of_legs_in_structure <- reactive({
lapply(1:input$number_of_structures, function(k){#start of function
numericInput(inputId= "no_of_legs_in_structure",
label = paste0("no_of_legs_in_structure",k),
value=1,
min=0,
max=6,
step=1)
})#end of lapply function and lapply
})
output$test2 <- renderUI(no_of_legs_in_structure())
#Trying to extract number of legs in each structure
output$test3 <-
renderUI(
lapply(1:input$number_of_structures, function(k){
(paste0("number of legs in Str::",k, "are",input$no_of_legs_in_structure[k], "\n" ))
})
)
}# ending bracket for server function
shinyApp(ui=ui, server = server)
谁能帮我弄清楚我在为 test3 渲染输出的代码片段中做错了什么。我正在尝试提取用户在“no_of_legs_in_structure”字段中输入的值
解决方案
您生成no_of_legs_in_structure
UI 元素的步骤是错误的。使用lapply
,您已经创建了k
所有具有相同 的输入id
。我已添加k
到 id 以便您可以区分输入。但是,我不喜欢使用 and 生成 UI 元素,lapply
请renderUI
查看insertuI
andremoveUI
以获得更简洁的方法。
library(shiny)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
#Enter Number of Structures to Analyse
numericInput(inputId = "number_of_structures",
label = "enter number of structures",
value = 1,
min = 1,
max = Inf,
step=1),
uiOutput("test2")
),# closing bracket for sidebarPanel
mainPanel(
textOutput("test1"),
uiOutput("test3")
)#closing for mainPanel
)#closing bracket for sidebarLayout
)#closing bracket for fluidPage
############ Below is code for server
server <- function(input, output){
#printing the number of structures entered by user
output$test1 <- renderText(paste0("number of structures entered by user are:- ", input$number_of_structures))
# Enter number of legs for each structure
no_of_legs_in_structure <- reactive({
lapply(1:input$number_of_structures, function(k){#start of function
numericInput(inputId= paste0("no_of_legs_in_structure_", k),
label = paste0("no_of_legs_in_structure",k),
value=1,
min=0,
max=6,
step=1)
})#end of lapply function and lapply
})
output$test2 <- renderUI(no_of_legs_in_structure())
#Trying to extract number of legs in each structure
output$test3 <-
renderUI(
lapply(1:input$number_of_structures, function(k){
(paste0("number of legs in Str::",k, "are",input[[paste0("no_of_legs_in_structure_", k)]], "\n" ))
})
)
}# ending bracket for server function
shinyApp(ui=ui, server = server)
推荐阅读
- python - 如何对字符串列表中的元素进行编号并返回一个新列表?
- google-app-engine - App Engine 如何防止实例内存不足?
- javascript - 使用 Heroku Redis 的 BullMQ 不会触发 QueueEvents
- django - 在 nginx 中设置“X-Forwarded-For”标头的目的是什么
- c# - C# 流控制 devCodeCamp 任务
- asp.net - FindControl 在 Listview Null 异常中不起作用
- python - 查找列表中连续项目的索引
- flutter - 我需要有关如何保存我的应用状态的指南
- python - 在 Anaconda 上安装 xgboost 时遇到问题
- azure - 当设备在未在 IoT Hub 中注册的情况下发送遥测消息时,IoT Hub 的行为是什么?