R Shiny加速数据加载

时间:2015-12-18 19:57:12

标签: r shiny shinydashboard

我有一个需要首先加载.RData文件的Shiny应用程序。 .RData文件只有一个大文件,包含2800万行,包含25个变量。 Shiny页面显示超过2分钟,因为文件很大。我们可接受的装载时间在30秒以内。有人有任何关于如何加快装载的建议吗?

我确实尝试通过fread函数加载数据(来自data.table pkg),但加载仍需要2分钟+。我猜加载(.RData)仍然比fread(.csv)快?

谢谢!

1 个答案:

答案 0 :(得分:2)

不要使用压缩 - 如果你有快速磁盘且变量是数字的,那么使用未压缩的RDS比压缩要快得多:

> l = lapply(1:25, function(o) rnorm(28e6))
> names(l) = paste0("V",1:25)
> attr(l,"row.names") = .set_row_names(length(l[[1]]))
> class(l) = "data.frame"
> saveRDS(l, file="data.rds", compress=FALSE)

(新会议)

> system.time(d<-readRDS("data.rds"))
   user  system elapsed 
  6.474   2.091   8.576 
> dim(d)
[1] 28000000       25

也就是说,这似乎是Rserve的一个很好的用例,您可以预先加载数据,这样当用户连接数据时,所有会话都已加载并共享数据(假设您没有运行Windows)服务器)。