[問題] 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