我最近在r中发现了rhandsontable包,它在我的一些闪亮项目中非常有用。我稍微修改了我在这里看到的Get selected rows of Rhandsontable作为我将使用此包的一个小测试器。 我希望能够让用户使用rhandsontable包从r中更改数据帧的值。所以我希望每次更改该值时df [1,1]都会更新。当涉及到渲染函数(特别是renderRHandsontable函数)周围的反应函数时,我只是有点困惑。我使用了反应函数和绘图,但这有点不同。
responseData: [{"edriverId":"bd307a3ec329e10a2cff8fb87480823da114f8f4","token":"6uc4d1houfecbmjgy9ezpru9n25nw40b17cwk439j52"}]
这是一个有趣的领域,它将在我的闪亮应用程序中打开很多,供用户玩。
由于
答案 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
现在对您桌面上的任何修改做出反应。