【发布时间】:2021-05-15 00:53:25
【问题描述】:
我正在处理仪表板,我想使用数据框来生成框和描述。我可以使用 lapply 来制作盒子,但我不知道如何从数据框中提取描述。到目前为止我有(没有描述):
library(shiny)
library(shinydashboard)
dataset <- data.frame("title" = c("A","B","C"), "description" = c("Info about box A", "Info about box B","Info about box C"), "data" = c(1:3))
ui <- fluidPage(
titlePanel("Dynamic Boxes"),
fluidRow(
uiOutput("boxes")
)
)
dataset <- data.frame("title" = c("A","B","C"), "description" = c("Stuff about box A", "Stuff about box B","Stuff about box C"), "data" = c(1:3))
server <- function(input, output) {
output$boxes <- renderUI({
lapply(dataset[,'title'], function(a) {
box(title = a, p("say stuff here"))
})
})
}
我无法找出正确的逻辑来提取描述。
我试过mapply:
server <- function(input, output) {
output$boxes <- renderUI({
mapply(function(x,y) {
box(title = x, p(y)
)
}, x = dataset[,'title'], y = dataset[,'description']
)
})
}
但我不知道我在做什么。你能帮忙吗?
编辑:
我可以使用上面的虚拟数据使用mapply 和SIMPLIFY=FALSE 和lapply 让仪表板工作
server <- function(input, output) {
output$boxes <- renderUI({
lapply(dataset[,'title'], function(a) {
box(title = a, p(dataset[dataset$title==a,2]))
})
})
}
但我无法让它与真实数据一起工作,并且无法用“虚拟”数据复制问题。
我的真实数据位于数据库中的服务器上。
【问题讨论】:
-
在此示例中,
dataset3也没有出现错误,我无法用虚拟数据复制问题,也许问题出在真实数据集中? -
我发现了问题!数据集有多个不间断空格 utf 字符 删除这些修复了问题。该应用程序现在按预期运行。
标签: r shiny shinydashboard