我在Ubuntu 16.04的R Shiny服务器上有2个正在运行的应用程序。两者都进行一些数据操作(例如清理,连接表等),然后将输出转储为带有类似函数的Excel文件,
dumpExcel <- function(matched, non_matched=NULL, fileName, out_format='xlsx') {
if (out_format == 'xlsx') {
library(openxlsx)
output <- createWorkbook()
addWorksheet(output, "matched")
if (!(is.null(non_matched))) { addWorksheet(output, "non_matched") }
writeData(output,"matched", matched, colNames = T)
if (!(is.null(non_matched))) { writeData(output,"non_matched", non_matched, colNames = T) }
FileName = fileName
saveWorkbook(output, FileName, overwrite = T)
return(output)
} else if (out_format == 'csv') {
write.csv(matched, gsub('.xlsx', '.csv', fileName), row.names=F)
}
}
对于第一个应用程序,此功能完美运行。对于第二个,它工作得很好,但不知道现在不是,并抛出下面的错误,
Error in : zipping up workbook failed. Please make sure Rtools is installed or a zip application is available to R.
Try installr::install.rtools() on Windows. If the "Rtools\bin" directory does not appear in Sys.getenv("PATH") please add it to the system PATH
or set this within the R session with Sys.setenv("R_ZIPCMD" = "path/to/zip.exe")
我之前尝试添加了行Sys.setenv(R_ZIPCMD = "/usr/bin/zip")
,但它没有用。为什么这个应用程序会抛出此错误,而同一台服务器/机器中的另一个工作正常?
非常感谢任何帮助...
答案 0 :(得分:1)
尝试在server.R中添加Sys.setenv(R_ZIPCMD = "/usr/bin/zip")
(在加载库之后,在shinyServer(function(...
块之前。这对我有用。
答案 1 :(得分:0)
原来这是一个记忆问题。可用内存约为200MB,将其增加到> 1GB,问题就解决了。