Shiny Selectr输入框中的动态组数
我在一项任务中需要帮助。我有数据帧:Shiny Selectr输入框中的动态组数,shiny,selectinput,Shiny,Selectinput,我在一项任务中需要帮助。我有数据帧: df <- data.frame( UserGroup = c("UserGroup1", "UserGroup2", "UserGroup2", "UserGroup3", "UserGroup3", "UserGroup3", NA, NA, NA, NA), User = c("User1", "User2", "User3", "User4", "User5", "User6", "User7", "User8", "User9", "
df <- data.frame(
UserGroup = c("UserGroup1", "UserGroup2", "UserGroup2", "UserGroup3", "UserGroup3", "UserGroup3", NA, NA, NA, NA),
User = c("User1", "User2", "User3", "User4", "User5", "User6", "User7", "User8", "User9", "User10")
)
手动操作很容易,但问题是df是一个来自数据库的数据帧,它可以包含随机数目的组和用户。
有人知道如何编写selectInput的代码,或者如何在自动获得预期效果之前准备数据吗?如前所述,您可以使用split()
。显然,当一个组包含一个观察值时,它不会很好地工作,所以我添加了user1bis
来向您展示。此外,您还需要为组为NA
的用户创建一个类别(我在此处添加了“无组”,以便按字母顺序排列在输入列表的末尾)
库(闪亮)
图书馆(dplyr)
df太好了,谢谢,这正是我想要的!
selectInput("state", "Choose a state:",
list(
`East Coast` = list("NY", "NJ", "CT"),
`West Coast` = list("WA", "OR", "CA"),
`Midwest` = list("MN", "WI", "IA")
)
)
library(shiny)
library(dplyr)
df <- data.frame(
UserGroup = c("UserGroup1", "UserGroup1", "UserGroup2", "UserGroup2", "UserGroup3", "UserGroup3", "UserGroup3", NA, NA, NA, NA),
User = c("User1", "User1 bis", "User2", "User3", "User4", "User5", "User6", "User7", "User8", "User9", "User10")
)
df_2 <- df %>%
mutate(UserGroup = ifelse(is.na(UserGroup), "Without Group", UserGroup))
ui <- fluidPage(
selectInput("state", "Choose a state:",
choices = split(df_2$User, df_2$UserGroup),
selected = "User 1"
)
)
server <- function(input, output, session) {}
shinyApp(ui, server)