[问题] shiny R能否使用bigmemory shared memory

楼主: cywhale (cywhale)   2015-06-19 20:39:58
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
请把以下不需要的部份删除
使用者(已经有用R 做过不少作品)
写过一个shiny app
[问题叙述]:
请简略描述你所要做的事情,或是这个程式的目的
我有一笔约5G资料,若想在shiny apps一开始load (只要load一次),但即便用 bigmemory
read.big.matrix 也大概要等4, 5分钟,系统就会等在那。
看到bigmemory package提供在不同R session中 可share相同的资料
(参考做法:http://www.slideshare.net/bytemining/r-hpc p15,16)
冒出个想法,是否可以在 shiny server.R被叫用时,我也事先启动另一个在背景的R
session 做 read.big.matrix()(应该说是一直存在的persistent data..) ,
那server.R就可直接attach.big.matrx
抱歉我只有概念还不知道这部分该怎么写code,或是有其他更快更好的方法也欢迎建议~
====
第二个问题是这笔 5G的资料是分辨率最细的 (long, lat,....),打算resample后另存
coarse_data,呈图时先用 coarse_data,等到使用者放大地图后再绘上精细的资料。
我现在用leaflet呈图大致像
leaflet(cities) %>% addTiles() %>% addPolygons(...) %>% setView(lng, lat, zoom)
我是否可以取得client端user滚动鼠标放大缩小底图时所见的视框 lng, lat范围或
zoom参数,并忽略中间连续快速滚动的过程,在他停下动作后才依据这些参数重新计算
资料,更新addPolygons(...)中的内容?
两个问题也请各位先进指教~ 谢谢
[程式范例]:
张贴能够重现错误的程式码,可以帮助版友更快的帮你解决问题
建立重现错误的方法可以参考:
抱歉我只有概念还不知道这部分该怎么写code...
[关键字]:Shiny, bigmemory, leaflet
作者: Wush978 (拒看低质媒体)   2015-06-20 02:24:00
shiny的程式码有分global(restart server才会重载)per session(开视窗才会重载)的部分你应该放在global的部分就可以了
作者: Gladstone (Austin)   2015-06-20 11:57:00
推。刚好我也遇到这个问题
楼主: cywhale (cywhale)   2015-06-20 12:02:00
谢谢Wu global应是放在shinyServer()前load 但就要等第一次load约5-10min这时shiny apps是一片空白不知情使用者大概以为当掉了..我是在想怎样在背景load进资料等user开启shiny apps就可以直接query呈图...
作者: Wush978 (拒看低质媒体)   2015-06-21 03:50:00
不如每次restart server都先手动开网页? 反正应该不会restart太多次...
楼主: cywhale (cywhale)   2015-06-22 23:10:00
搞错bigmemory用法 不用另开session load object in mem只要产生descriptor file在其他R session都可以用 很快所以第一问题迎刃而解,剩下第二问题我再想办法试试

Links booklink

Contact Us: admin [ a t ] ucptt.com