作者cywhale (cywhale)
看板R_Language
标题[问题] shiny R能否使用bigmemory shared memory
时间Fri Jun 19 20:39:58 2015
[问题类型]:
程式谘询(我想用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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.252.43.84
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1434717601.A.CE1.html
1F:推 Wush978: shiny的程式码有分global(restart server才会重载) 06/20 02:24
2F:→ Wush978: per session(开视窗才会重载)的部分 06/20 02:25
3F:→ Wush978: 你应该放在global的部分就可以了 06/20 02:25
4F:推 Gladstone: 推。刚好我也遇到这个问题 06/20 11:57
5F:→ cywhale: 谢谢Wu global应是放在shinyServer()前load 但就要等 06/20 12:02
6F:→ cywhale: 第一次load约5-10min这时shiny apps是一片空白不知情 06/20 12:03
7F:→ cywhale: 使用者大概以为当掉了..我是在想怎样在背景load进资料 06/20 12:03
8F:→ cywhale: 等user开启shiny apps就可以直接query呈图... 06/20 12:04
9F:→ Wush978: 不如每次restart server都先手动开网页? 反正应该不会 06/21 03:50
10F:→ Wush978: restart太多次... 06/21 03:50
11F:→ cywhale: 搞错bigmemory用法 不用另开session load object in mem 06/22 23:10
12F:→ cywhale: 只要产生descriptor file在其他R session都可以用 很快 06/22 23:12
13F:→ cywhale: 所以第一问题迎刃而解,剩下第二问题我再想办法试试 06/22 23:13