我希望有一个简单的问题,可以将标签有序列表传递到 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/