我正在构建一个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))
})
答案 0 :(得分:0)
您的代码不可重复,但我猜您需要在sortColumn
中添加gvisTable
选项。
像这样:
return(gvisTable(dff1, options=list(sortColumn='COLUMN_NUMBER'))
只需更换&#39; COLUMN_NUMBER&#39;对于所需的列。