gpt4 book ai didi

单击 R Shiny 中的按钮后将输入字段重置为 null

转载 作者:行者123 更新时间:2023-12-03 03:46:07 25 4
gpt4 key购买 nike

我正在构建一个应用程序,用户可以在其中按列输入表的数据值。单击“添加”按钮后,输入的值将按列附加到现有值。例如如果输入 col1, 2, 3 并单击 ADD,我们将在显示屏中看到

col1
2
3

如果输入了 col2, 4, 7 并单击了 ADD,我们就会显示

col1 col2
2 4
3 7

等等

我希望当单击添加按钮时,输入字段被清除以允许输入新列。请查找下面的用户界面和服务器代码。输出表也无法正确显示,任何解决此问题的帮助也将不胜感激。

ui.R

shinyUI(pageWithSidebar(
headerPanel("My data table"),
sidebarPanel(h5("Enter input"),
textInput("colname","Enter Column Name",NA),
numericInput("x","X",NA),
numericInput("y","Y",NA),
br(),
actionButton("Add","ADD")),
mainPanel(verbatimTextOutput("out"))
))

server.R

shinyServer(function(input,output){

myTable <- reactive({
if(input$Add > 0)
return(isolate({
colnm <- input$colname
x <- input$x
y <- input$y
result <- data.frame(rbind(colnm,x,y))
result
}))
})

output$out <- renderTable({
myTable()
})

})

最佳答案

表格需要使用renderTable而不是verbatimTextOutput来呈现。我猜你想保留旧的输入。一种方法是使用reactiveValues。编辑:我没有看到你想重置输入。要重置输入,请使用 updateNumericInput 和 updateTextInput 函数。您还需要将 session 变量传递到您的 server 函数中。

runApp(
list(ui = pageWithSidebar(
headerPanel("My data table"),
sidebarPanel(h5("Enter input"),
textInput("colname","Enter Column Name",NA),
numericInput("x","X",NA),
numericInput("y","Y",NA),
br(),
actionButton("Add","ADD")),
mainPanel(tableOutput("out"))
),

server = function(input,output,session){
myValues <- reactiveValues()

observe({
if(input$Add > 0){
isolate({
colnm <- input$colname
x <- input$x
y <- input$y
if(!is.null(myValues$myDf)){
myValues$myDf <- cbind(myValues$myDf,
data.frame(setNames(list(c(x, y)), colnm))
)
}else{
myValues$myDf <- data.frame(setNames(list(c(x, y)), colnm))
}

})
updateNumericInput(session, "x","X", NA)
updateNumericInput(session, "y","Y", NA)
updateTextInput(session, "colname","Enter Column Name",NA)
}
})

output$out <- renderTable({
myValues$myDf
})

})
)

编辑:

您可以更改为

    updateNumericInput(session, "x","X", 3)
updateNumericInput(session, "y","Y", 5)
updateTextInput(session, "colname","Enter Column Name",'Default NAME')

并且它有效。现在这些值更改为默认值 3,5 和“默认名称”

关于单击 R Shiny 中的按钮后将输入字段重置为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23432416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com