我正在写一个闪亮的应用程序,该应用程序有一个用户可以从中选择行的表(使用DT::renderDataTable
)。但是我希望用户也可以添加新的行,如果他们想要的东西不在表中。我为用户使用输入控件输入新数据,并且我有一个操作按钮,如果按下该按钮,应该从输入值在表中创建新的一行数据。但按下按钮不会更新表格。在Shiny中,使用用户输入中的新值更新DataTable
小例子:
library(shiny)
library(DT)
mydata = data.frame(id=letters[1:5], val=sample(10,5,T))
ui = fluidPage(dataTableOutput("table"),
textInput('NewID', 'Enter new ID'),
numericInput('NewVal', 'Enter new val', 1),
actionButton("goButton", "Update Table"))
server = function(input,output){
output$table = renderDataTable(mydata)
update = eventReactive(input$goButton, {
newrow = data.frame(id = input$NewID, val = input$NewVal)
mydata = rbind(mydata, newrow)
})
}
shinyApp(ui,server)
显然,这是接近这个错误的方式。我试过renderDataTable
和更新mydata
renderUI
,observe
和reactive
的代码,但我找不到正确的方法来做到这一点。
这是我的第一个闪亮的应用程序,所以也许有一个基本的概念,我不太明白。什么是正确的方式?
'错误生效(默认):参数“价值”的缺失,没有default' – HubertL
@HubertL你得到这个错误时,粘贴和运行代码?它对我来说运行正常。 – dww
我需要为'numericInput()'提供'value'参数' – HubertL