我尝试使用 rhandsontable 来构建一个闪亮的应用程序。
当首先运行应用程序时,应该呈现一个空表,然后可以通过复制和粘贴来填充数据。粘贴数据后,应呈现值图。
我的代码如下:
library(shiny)
library(rhandsontable)
library(data.table)
X = c("","","")
Y = c("","","")
daten = data.table(X, Y)
ui <- fluidPage(
rHandsontableOutput("tabelle"),
plotOutput("grafik")
)
server <- function(input, output) {
data <- reactiveValues(values=daten)
output$tabelle <- renderRHandsontable({
rhandsontable(data$values)
})
observeEvent(input$tabelle, {
data$values <- hot_to_r(input$tabelle)
})
output$grafik <- renderPlot({
if(is.null(data$values)) return(NULL)
plot(data$values)
})
}
shinyApp(ui, server)
该应用程序有效,但给出了错误消息
Warning: Error in plot.window: need finite 'xlim' values
在控制台中并在浏览器窗口中显示错误消息:
将数据粘贴到表中时错误消息消失。
我认为错误是由于第一次调用绘图函数时缺少数据。在 github 我找到了要添加的建议
if(is.null(data$values)) return(NULL)
在 renderPlot 函数中,但不幸的是这没有帮助。
如果有人可以帮助我用 rhandsontable 创建一个空表,我会非常高兴,该表可以通过复制和粘贴来填充数据。