使用renderUI()更新动态UI后提取输入小部件的值
我已经通过renderUI()成功地动态更新了UI。我有一个长长的输入列表可供选择。复选框用于动态添加数字输入。所以,为了实现这一点,我使用了lappy。然而,我在checkboxgroup本身中使用了选中复选框的值来填充动态添加的数字输入的ID,而不是在Lappy中使用paste(input,I) 用户界面代码片段: 服务器代码片段:使用renderUI()更新动态UI后提取输入小部件的值,r,shiny,dynamic-ui,R,Shiny,Dynamic Ui,我已经通过renderUI()成功地动态更新了UI。我有一个长长的输入列表可供选择。复选框用于动态添加数字输入。所以,为了实现这一点,我使用了lappy。然而,我在checkboxgroup本身中使用了选中复选框的值来填充动态添加的数字输入的ID,而不是在Lappy中使用paste(input,I) 用户界面代码片段: 服务器代码片段: renderUI({ numInputs <- length(input$checkboxgrp) if(numInputs==0){
renderUI({
numInputs <- length(input$checkboxgrp)
if(numInputs==0){
wellPanel("No transaction selected")
}
else{
lapply(1:numInputs, function(i){
x[i]=input$checkboxgrp[i]
list(numericInput(input$checkboxgrp[i], min = 0, label = input$checkboxgrp[i],
value= input[[x[i]]] ))
})
}
})
output$value <- renderPrint({
numInputs <- length(input$checkboxgrp)
lapply(1:numInputs, function(i){
print(input[[x[i]]]) ## ERROR
})
})
使用打印(输入[[x[i]])#错误
NULL
NULL
NULL
NULL
[[1]]
NULL
[[2]]
NULL
[[3]]
NULL
[[4]]
NULL
Must use single string to index into reactivevalues
invalid subscript type 'language'
使用打印('$'(输入,x[i])#错误
NULL
NULL
NULL
NULL
[[1]]
NULL
[[2]]
NULL
[[3]]
NULL
[[4]]
NULL
Must use single string to index into reactivevalues
invalid subscript type 'language'
如果我理解正确,您希望访问动态生成的小部件的值,然后将它们打印出来 在我下面的例子中,应该很容易概括,选择是iris数据集中变量
Setosa
的级别
生成的小部件的ID始终由checkboxGroupInput
中的选定值提供。因此,input$checkboxgrp
告诉Shining应该为哪一级别的setosa生成一个小部件。同时input$checkboxgrp
给出生成的小部件的ID。这就是为什么不需要将“活动”小部件的ID存储在其他变量x
中(这可能是一个被动值)
要打印这些值,可以执行以下操作:
output$value <- renderPrint({
activeWidgets <- input$checkboxgrp
for (i in activeWidgets) {
print(paste0(i, " = ", input[[i]]))
}
})
编辑:
您可以稍微调整一下
lappy
部分(注意如果我理解正确,您希望访问动态生成的小部件的值,然后将其打印出来
在我下面的例子中,应该很容易概括,选择是iris数据集中变量Setosa
的级别
生成的小部件的ID总是由checkboxGroupInput
中的选定值给出。因此,input$checkboxgrp
告诉Shining应该为哪一级别的setosa生成小部件。同时input$checkboxgrp
给出生成的小部件的ID。这就是为什么不需要存储其他变量x
中的“活动”窗口小部件(可能是被动值)
要打印这些值,可以执行以下操作:
output$value <- renderPrint({
activeWidgets <- input$checkboxgrp
for (i in activeWidgets) {
print(paste0(i, " = ", input[[i]]))
}
})
编辑:
你可以稍微调整一下lappy
部分(注意(y),感谢您详细的回答,真的很有帮助。我能够打印小部件的值,但是,我想构造一个命名向量,其中包含checkboxGroupInput
中的所有选项,并在dynamicNumericiInput
和0中填充相应的值。您能帮忙吗?我更新了我的答案:)我希望这次它能回答这个问题。我使用非标准评估来评估所有的数值输入是否可用,从而防止错误。它们的值可以在很短的时间内NULL
(我们不能这样做:res[I]谢谢@UnnamedUser!!现在一切都排序好了(y):(y),感谢您详细的回答,真的很有帮助。我能够打印小部件的值,但是,我想构造一个命名向量,其中包含checkboxGroupInput
中的所有选项,并在dynamicNumericiInput
和0中填充相应的值。您能帮忙吗?我更新了我的答案:)我希望这次它能回答这个问题。我使用非标准评估来评估所有的numericInput
s是否可用,从而防止错误。它们的值可以在很短的时间内NULL
(我们不能这样做:res[I]谢谢@UnnamedUser!!现在一切都排序好了(y):)