r - 下载最终数据表并在 shinydashboard 中绘图
问题描述
我正在尝试下载最终的数据表并在 shinydashboard 中绘图。虽然过程中没有错误,但它不起作用并且最终输出文件(用于表格(csv)和绘图(png))没有创建。
如果有人对如何使用闪亮的仪表板正确下载表格和绘图有任何建议,将不胜感激。
我附上了代码。
****************************ui******************************
library(shiny)
library(shinydashboard)
library(data.table)
library(ggplot2)
library(plotly)
header <- dashboardPage(skin = "green",
dashboardHeader(title = "TEST"),
dashboardSidebar(
sidebarMenu(dir="ltr",align="right",
menuItem("Households", tabName = "hhdemostats", icon = icon("users")))),
dashboardBody(
dir="ltr",
tabItems(
tabItem(tabName = "hhdemostats",
fluidRow(
tabsetPanel(
tabPanel("Inputs",
box(status = "info",solidHeader = TRUE,
title = "Year",
selectInput(inputId="slcT2Year",label="Year",
choices=list(1390,1391,1392,1393,
1394,1395,1396,1397))),
box(status = "info", solidHeader =TRUE,
title = "Variables",
selectInput("slcT2Var","Variables",
list("FoodExpenditure","Cloth_Exp"),
selected="FoodExpenditure")),
box(status="info", solidHeader = TRUE,
title = "Groups",
selectInput("slcT2Grp","Groups",
list("Decile","Percentile"))),
box(status="info", solidHeader = TRUE,
title = "Statistics",
selectInput("slcT2Stat","Satistics",
list("mean","median","min","max",
"var","sd","range","sum","IQR")))),
tabPanel("Table",
box(status = "info",solidHeader = TRUE,
DT::dataTableOutput("tblT2Stats"))
,downloadButton("downloadData", "Download")),
tabPanel("Plot",
box(status = "info",solidHeader = TRUE,
plotlyOutput("pltT2barchart"))
,downloadButton("downloadPlot", "Download"))))))))
我的服务器如下:
****************************server******************************
library(shiny)
library(shinydashboard)
library(data.table)
library(ggplot2)
library(DT)
library(plotly)
app_server <- function(input, output,session) {
##################### Table #########################
output$tblT2Stats <- DT::renderDataTable({
y <- input$slcT2Year
vs <- input$slcT2Var
gs <- input$slcT2Grp
st <- input$slcT2Stat
fn1 <- paste0("data/Y",substr(y,3,4),"Total8.rda")
load(fn1)
fnc1 <- get(st)
Total[,lapply(.SD,fnc1,na.rm=TRUE), by=gs,.SDcols=vs]
})
output$downloadData <- downloadHandler(
filename = function() {
paste("dataset", ".csv", sep="")
},
content = function(file) {
write.csv(Total, file)
})
##################### Plot #########################
output$pltT2barchart <- renderPlotly({
y <- input$slcT2Year
vs <- input$slcT2Var
gs <- input$slcT2Grp
st <- input$slcT2Stat
fn1 <- paste0("data/Y",substr(y,3,4),"Total8.rda")
load(fn1)
fnc1 <- get(st)
SD <- Total[,lapply(.SD,fnc1, na.rm=TRUE), by=gs,.SDcols=vs]
ggplot(SD) + geom_col(aes_string(x=gs,y=vs,fill = gs))
})
output$downloadPlot <- downloadHandler(
filename = function() {
paste("plot", ".csv", sep="")
},
content = function(file) {
ggsave(file,SD(),device = "png")
})
session$onSessionEnded(function() {
stopApp()
# q("no")
})
}
解决方案
推荐阅读
- laravel - 试图获取非对象 laravel 的属性“id”
- android - 评价视图时,MotionEvent#getX getY 返回异常值
- python - 如何在省略某些数据的同时获取一组 JSON 数据?
- python - Dataflow/apache Beam - 传入模式时如何访问当前文件名?
- unit-testing - SpringBootTest - 请求无效时测试异常
- purescript - PureScript 中的全局资源(适用于 AWS Lambda)
- sql-server - SSRS 2017 带有日期的级联参数
- swift - 从匹配的关联值中获取枚举
- php - 使用 ajax (Codeigniter) 将数组从视图提交到控制器
- visual-studio-code - 用于访问当前活动调试会话的调试上下文、变量、异常的 VS Code 扩展