r - ShinyDashboard 动态要点

标签 r shiny shinydashboard

我希望有一个简单的问题,可以将标签有序列表传递到 Shiny 的仪表板中。我想做的是有一个函数,可以根据过滤的类别生成项目符号的有序列表。

这是一个简单的示例,展示了我希望能够使用名为 nba_teams 的数据框执行的操作

teams    conference
Bulls    Eastern
Nuggets  Western
Celtics  Eastern
Lakers   Western

现在,如果我编写此函数,它将列出各个 session 的列表:

for (row in 1:nrow(nba_teams)){
  teams <- nba_teams[row, "teams"]
  conference <- nba_teams[row,"conference"]

  if(grepl("Western",conference)){
   print(tags$li(teams))
 }
}

  • 掘金
  • 湖人队
  • 我想做的是将其放在选项卡框中,以便:

    box(
     title = "Western Conference",
     tags$ol(
      for (row in 1:nrow(nba_teams)){
      teams <- nba_teams[row, "teams"]
      conference <- nba_teams[row,"conference"]
    
      if(grepl("Western",conference)){
       print(tags$li(teams))
     }
    })),
    

    但这只是将框留空,并且不会为每个观察结果填充项目符号点。

    有什么建议吗?谢谢!

    最佳答案

    在这种情况下我会使用lapply:

    library(shiny)  
    library(shinydashboard)
    
    nba_teams <- data.frame(team = c("Bulls", "Nuggest", "Celtics", "Lakers"),
                            conference = c("Eastern", "Western", "Eastern", "Western"))
    
    ui <- dashboardPage(
      dashboardHeader(),
      dashboardSidebar(),
      dashboardBody(
        box(
          title = "Western Conference",
          tags$ol(
            lapply(1:nrow(nba_teams), function(x) {
              if (nba_teams$conference[x]=="Western") {
                return(tags$li(nba_teams$team[x]))
              }
            })
          )
        )
      )
    )
    
    server <- function(input, output, session) {}
    
    shinyApp(ui, server)
    

    关于r - ShinyDashboard 动态要点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52938451/

    相关文章:

    R Shiny : display "loading..." message while function is running

    html - 如何编写 Shiny 的侧边栏折叠以仅显示图标

    R Shiny 如何 "box" Shiny 页面上的简单文本

    r - 如何强制 readr 考虑正确的小数/分组标记?

    r - 如何在数据框中按行获取值的所有组合

    r - 合并数据框而不重复行

    r - 对 GGplot2 使用 react 数据集?

    r - 在shinyR仪表板中为ggplot2创建动态相关输入过滤器并相应地渲染绘图

    css - 背景颜色在 shinydashboard 主体中被切割

    重新排列行和列+使用R中的平均分数