闪亮的R:如何使用gvisTable对数据帧进行反应排序

时间:2017-03-07 16:23:43

标签: r shiny shinydashboard

我正在构建一个Web应用程序,它从用户那里获取输入值,用它创建一个数据帧,并最终使用gvisTable显示它。但是,我正在努力动态地按分数列对数据框进行排序。

以下是我在server.R文件中的内容:

values<- reactiveValues() 
  values$df<- data.frame()

  observeEvent(input$click_counter, {
    name<- input$name
    gender<- input$gender
    college<- input$college
    team<- input$team
    score<- as.numeric(input$score)
    rank<- 0

    new_row<- data.frame(rank,name,college,gender,team,score)

    values$df<- rbind(values$df, new_row)
    values$df<- values$df[order(values$df$score,decreasing=TRUE),]
    values$df$rank<- 1:nrow(values$df)
  })

dff1 <- data.frame()
  output$summa2 <- renderGvis({
    for (team_name in unique(values$df$team)){
      rank <- 0
      team <- team_name
      score <- format(mean(values$df[values$df$team==team_name,]$score), digits=4)

      new_row<- data.frame(rank, team, score)

      dff1 <<- rbind(dff1, new_row)
      dff1 <<- dff1[order(dff1$score,decreasing=FALSE),]
      dff1$rank <<- 1:nrow(dff1)
    }
    return(gvisTable(dff1))
  })

1 个答案:

答案 0 :(得分:0)

您的代码不可重复,但我猜您需要在sortColumn中添加gvisTable选项。

像这样:

return(gvisTable(dff1, options=list(sortColumn='COLUMN_NUMBER'))

只需更换&#39; COLUMN_NUMBER&#39;对于所需的列。