r - 运行 zip 时如何修复命名空间错误?
问题描述
当我按如下方式运行以下代码时出现命名空间错误:警告:“zipr”中的错误不是“命名空间:zip”中的导出对象[没有可用的堆栈跟踪]。关于这可能是什么原因的任何建议?提前致谢。
library(shiny)
library(ggplot2)
ui <- fluidPage(
plotOutput("p1"),
plotOutput("p2"),
plotOutput("p3"),
downloadButton("allgraphs", "Download")
)
server = function(input, output) {
df<-data.frame(q=c(1,3,5,7,9),w=c(2,4,6,8,10),z=c(1,2,3,4,5))
p1 <- reactive({
ggplot(df,aes(x=q,y=w)) + geom_point()
})
p2 <- reactive({
ggplot(df,aes(x=z,y=w))+geom_point()
})
p3 <- reactive({
ggplot(df,aes(x=q,y=z))+geom_point()
})
output$p1 <- renderPlot({
p1()
})
output$p2 <- renderPlot({
p2()
})
output$p3 <- renderPlot({
p3()
})
output$allgraphs = downloadHandler(
filename = function() {
'all_images.zip'
},
content = function(fname) {
fs <- replicate(3, tempfile(fileext = ".png"))
ggsave(fs[1], p1())
ggsave(fs[2], p2())
ggsave(fs[3], p3())
zip::zipr(zipfile=fname, files=fs)
},
contentType = "application/zip")
}
shinyApp(ui, server)
解决方案
您需要将 zip 包更新到最新版本。我在 1.0.0 版的 zip 中遇到了同样的问题,它不导出任何 zipR 对象,并且 openxlsx 加载会失败。将 zip 升级到 v2.1.0,确实导出了一个 zipR 对象,解决了这个问题。
推荐阅读
- java - Hibernate - 将整个对象序列化为字段
- javascript - 试图通过点击锚链接专注于特定的 div
- singleton - EJB-Wildfly:可以在 Wildfly 中执行多个 EJB 调度程序,还是应该将它保存在单独的类文件中?
- c# - 访问具有相同列的不同模型的通用视图
- arrays - 字符串数组未绑定到列表视图
- php - 从数组 + json 中删除重复项,array_unique 的问题
- excel - 如何在特定时间运行 VBA Excel 宏,然后每 2 小时运行一次
- python - 如何读取带有分组数据的excel文件
- symfony - Symfony4 Twig Extension 返回图片路径
- python - Azure Function 为同一个 Blob 存储事件触发多次