如何解决在 RMarkdown 块中渲染闪亮
我开发了一个可以正常工作的 Shiny 应用程序。该应用程序可以做的一件事是根据选择进行线性回归的变量数量在一行中生成不同数量的图。因此,如果我选择两个预测变量,它将创建模型响应和两个预测变量中的每一个的两个描述性图。为了能够做到这一点,我必须在服务器内部创建这种代码:
observe({
if(input$executar == 0) {
return(invisible(NULL))
} else {
lapply(names(model()$model)[-1],function(par){
if (is.factor(model()$model[,par]) || is.character(model()$model[,par]) || is.integer(model()$model[,par])) {
taula <- as.data.frame(table(model()$model$resposta2,model()$model[,par]))
p <- plot_ly(taula,x = ~ Var1,y = ~Freq,color = ~Var2,type = "bar") %>%
layout(legend = list(orientation = "h"),title = par,xaxis = list(title = ""),yaxis = list(title = ""),autosize=TRUE)
output[[paste("plot",par,sep = "_")]] <- renderPlotly({
p
})
} else if (is.numeric(model()$model[,par])){
p <- plot_ly(model()$model,y = ~model()$model[,par],color = ~resposta2,type = "box") %>%
layout(legend = list(orientation = "h"),title = NULL,yaxis = list(title = par),sep = "_")]] <- renderPlotly({
p
})
}
})
}
})
output$descriptiva_regressio_logistica <- renderUI({
if(input$executar == 0) {
return(invisible(NULL))
} else {
plot_output_list <- lapply(names(model()$model)[-1],function(par) {
plotname <- paste("plot",sep = "_")
plotlyOutput(plotname)
})
do.call(flowLayout,plot_output_list)
}
})
正如我所说,这很完美(没有显示整个代码,但这并不重要)。但是现在我希望能够使用 RMarkdown 翻译在 HTML 中生成的图,所以我在我的 Shiny 应用程序中按下一个按钮(一个 downloadHandler),一个 HTML 文档就被创建了。我已经成功地用其他图完成了这一点,但在这种情况下是不同的,因为(我相信)有一些 renderPlotly 和输出需要进入 RMarkdown 块:
lapply(names(model()$model)[-1],sep = "_")]] <- renderPlotly({
p
})
}
})
plot_output_list <- lapply(names(model()$model)[-1],plot_output_list)
至少这是我尝试遵循其他情节的逻辑的方式:只需放置制作情节的代码。但在这种情况下,正如我所说,不起作用。
有没有办法让它起作用?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。