我想根据我拥有的数据创建一个值框。
假设我有 5 个数据变量consumerdata
像这样,
id data number1 number2
1 k4j A 67 53
2 rls B 30 62
3 yv9 C 45 28
4 l6h D 63 47
5 f08 E 96 75
然后我需要创建 5 个带有“name”和“number1”列的值框。
我没有显示任何数据,也没有错误。
Code
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(
sidebarMenu(
menuItem("Consumer", tabName = "consumerdata")
)
),
dashboardBody(
tabItems(
tabItem(tabName = "consumerdata",
fluidRow(
tabBox(width = 12,
tabPanel("Label",
box(width = 12,
uiOutput("consumer")
)
)
)
)
)
)
)
)
server <- function(input,output) {
output$consumer <- renderUI({
lapply(consumerdata$name, function(i) {
valueBox(i,
consumerdata$number1, #here display number1 one by one like name
width = 4
)
})
})
}
shinyApp(ui = ui, server = server)
您几乎已经完成了,现在您可以迭代数字序列而不是元素本身,然后使用这些数字作为索引。
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(
sidebarMenu(
menuItem("Consumer", tabName = "consumerdata")
)
),
dashboardBody(
tabItems(
tabItem(tabName = "consumerdata",
fluidRow(
tabBox(width = 12,
tabPanel("Label",
box(width = 12,
uiOutput("consumer")
)
)
)
)
)
)
)
)
server <- function(input,output) {
output$consumer <- renderUI({
consumerdata <- head(mtcars) #comment this if you already have consumerdata defined
consumerdata$name <- rownames(consumerdata) #comment this if you already have consumerdata defined
consumerdata$number1 <- 1:6 #comment this if you already have consumerdata defined
lapply(1:length(consumerdata$name), function(i) {
valueBox(consumerdata$name[i],
consumerdata$number1[i], #here display number1 one by one like name
width = 4
)
} )
})
}
shinyApp(ui = ui, server = server)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)