反应性和rhandsontable

时间:2016-05-18 05:39:38

标签: r shiny handsontable

我最近在r中发现了rhandsontable包,它在我的一些闪亮项目中非常有用。我稍微修改了我在这里看到的Get selected rows of Rhandsontable作为我将使用此包的一个小测试器。 我希望能够让用户使用rhandsontable包从r中更改数据帧的值。所以我希望每次更改该值时df [1,1]都会更新。当涉及到渲染函数(特别是renderRHandsontable函数)周围的反应函数时,我只是有点困惑。我使用了反应函数和绘图,但这有点不同。

responseData: [{"edriverId":"bd307a3ec329e10a2cff8fb87480823da114f8f4","token":"6uc4d1houfecbmjgy9ezpru9n25nw40b17cwk439j52"}]

这是一个有趣的领域,它将在我的闪亮应用程序中打开很多,供用户玩。

由于

1 个答案:

答案 0 :(得分:1)

此处的代码无法重现。在您的服务器功能开始时,您在rbind()df1上使用df2时尚未使用这些对象。 R会抛出错误(它应该!)

因此,我必须假设您的数据框实际上是以下内容:

  a<-c(1,2)
  b<-c(3,4)
  c<-rbind(a,b)
  df1<-data.frame(c)

要将Rhandsontable的反应性输出绑定到textOutput,您可以使用Shiny中的observe()函数,甚至更好,来自hot_to_r本身的方便rhandsontable函数。此函数将双手数据转换为R对象。

在不更改ui功能的情况下,这将是您的server功能:

server <- function(input,output,session)({

    a<-c(1,2)
    b<-c(3,4)
    c<-rbind(a,b)
    df1<-data.frame(c)

output$table<-renderRHandsontable(
      rhandsontable(df1)
)

#use hot_to_r to glue 'transform' the rhandsontable input into an R object
output$tr <- renderText({
      hot_to_r(input$table)[1,1]
})

})

然后照常调用您的Shiny应用:shinyApp(ui = ui, server = server),您的output$tr现在对您桌面上的任何修改做出反应。