r - 使用 actionbutton 移动到闪亮应用程序中的下一行数据框
问题描述
我有shiny
下面的应用程序,当用户单击数据表的一行时,子集会发生在另一个数据框中df
并显示文本。
我想在按下Next
actionbutton()
文本时显示子集数据框的下一行的数据。在这种情况下,它应该显示"flower b has score 5"
.
我的原始数据会有很多行,所以Next
每次按下时我都需要根据对应的行来调整文本。
shinyApp(
ui = fluidPage(DT::dataTableOutput('tableId'),
textOutput("celltext"),
actionButton("next","Next")),
server = function(input, output) {
output$tableId = DT::renderDataTable(
iris[,c(1,5)], selection = list(target = 'row',mode="single")
)
species<-c("setosa","setosa","virginica","virginica")
flower<-c("a","b","c","d")
score<-c(7,5,6,9)
df<-data.frame(species,flower,score)
observeEvent(input$tableId_rows_selected, {
output$celltext <- renderText({
cell <- input$tableId_rows_selected
dat<-df[df$species %in% iris[cell,5],]
df <-dat[order(dat$score,decreasing = T),]
df
paste("flower",df[1,2],"has score",df[1,3])
})
})
}
)
解决方案
定义reactiveValues
对象会有所帮助。也许你正在寻找这个
shinyApp(
ui <- fluidPage(DT::dataTableOutput('tableId'),
textOutput("celltext"),
actionButton("next","Next")),
server <- function(input, output) {
rv <- reactiveValues(text=NULL)
dt <- reactiveValues(data=NULL)
rnum <- reactiveVal(0)
output$tableId = DT::renderDataTable(
iris[,c(1,5)], selection = list(target = 'row',mode="single")
)
species<-c("setosa","setosa","virginica","virginica","setosa","setosa","virginica","virginica")
flower<-c("a","b","c","d","e","f","g","h")
score<-c(7,5,6,9,1,2,3,4)
df<-data.frame(species,flower,score)
observeEvent(input$tableId_rows_selected, {
row <- input$tableId_rows_selected
dat<-df[df$species %in% iris[row,5],]
dt$data <-dat[order(dat$score,decreasing = T),]
rv$text <- paste("flower",dt$data[1,2],"has score",dt$data[1,3])
rnum(1)
output$celltext <- renderText({
rv$text
})
})
observeEvent(input[['next']], {
rnum(rnum()+1)
rv$text <- paste("flower",dt$data[rnum(),2],"has score",dt$data[rnum(),3])
})
}
)
推荐阅读
- django - 如何通过docker添加crontab
- python - 访问 Pandas 系列
- asp.net - html下拉事件在亚马逊移动应用程序页面中不起作用
- r - 为什么我会遇到 ar 模型的奇异矩阵问题?
- reactjs - 在 jboss eap 7.3 上部署反应包?
- php - 如何在 PHP 中将使用“foreach”创建的函数作为字符串返回以使用 wordpress contactform 7 动态字段发送
- python - 如何在 url-path 中不指定标识符 (pk) 的情况下实现部分数据更新?
- java - Spring Data Redis 参数没有名称
- libgdx - Libgdx | 迷宫创作
- excel - 将 Excel 数据自动转换为 Powerpoint (VBA)?