我正在尝试构建一个可以执行以下操作的Shiny App:
上面的步骤1-3我知道该怎么做,但是我正在寻找有关如何实施第四步的建议。 Shiny可以有一个交互式表格,如果用户设置了stats标志,它将在该表格中做出反应并重绘该图?
这里的想法是制作一个交互式数据清理工具,用于处理从仪器中记录的时间序列数据,该工具通常会包含不良数据点。
谢谢
答案 0 :(得分:0)
这是使用library(DT)
的解决方案。
在“绘图”列中键入“ 0”,以从绘图中删除数据点。
library(shiny)
library(DT)
shinyApp(
ui = fluidPage(DTOutput('myTable'),
plotOutput("myPlot")),
server = function(input, output) {
output$tbl = renderDT(iris,
options = list(lengthChange = FALSE),
editable = TRUE)
myData = data.frame(y = 1:10, plot = 1)
output$myTable = renderDT(myData, selection = 'none', editable = TRUE)
proxy = dataTableProxy('myTable')
observeEvent(input$myTable_cell_edit, {
info = input$myTable_cell_edit
str(info)
i = info$row
j = info$col
v = info$value
myData[i, j] <<- DT::coerceValue(v, myData[i, j])
replaceData(proxy, myData, resetPaging = FALSE) # important
})
output$myPlot <- renderPlot({
input$myTable_cell_edit
plot(myData$y[myData$plot > 0], myData$y[myData$plot > 0])
})
}
)
有关更多信息,请参见this。