我正在尝试熟悉rhandsontable
软件包。因此,我尝试了一些我认为应该很容易但无法找到解决方案的事情。这是想法:
我正在使用随机数并在文本框中创建一个数据框。应显示数据框第1列的平均值。此外,一旦更改数据帧中单元格的值,该数字应立即更新。
我的代码:
ui <- fluidPage(
textOutput("num"),
rHandsontableOutput(outputId="frame")
)
server <- function(input, output, session) {
datavalue <- reactiveValues(data=df)
observeEvent(input$frame$changes$changes,{
mean_col1 <- mean(datavalue$data[[1]][1:10])
})
output$num <- renderText({
mean(datavalue$data[[1]][1:10])
})
output$frame <- renderRHandsontable({
rhandsontable(datavalue$data)
})
}
shinyApp(ui = ui, server = server)
我认为您希望在发生更改时使用hot_to_r
将可操作表转换为R对象。您可以在发生这种情况时更新reactiveValue
datavalue$data
,并且您的output$num
也会用新的平均值来说明此更改。
尝试在observeEvent
中使用此功能:
datavalue$data <- hot_to_r(input$frame)
作为替代,您可以如下进行一般的observe
:
observe({
req(input$frame)
datavalue$data <- hot_to_r(input$frame)
})