1
我嘗試構建一個閃亮的應用程序。它實際上是有效的。基本上我有一個數據集(20'000行),我用滑塊和Groupcheckboxes更改,然後使用ggmap繪圖到一個地圖。但它非常慢(需要10到20秒左右的改變)。有沒有可能使應用程序運行得更快。它是否與子集函數有關?或者是因爲ggmap情節?我添加了我的通用服務器代碼。R中緩慢閃亮的應用程序
會感激各種幫助。
shinyServer(
function(input, output) {
data_subset <- reactive({
subset(pladata_no_na_loc, (pladata_no_na_loc$FUEL_FACTOR == input$fueltype[1] |
pladata_no_na_loc$FUEL_FACTOR == input$fueltype[2] |
pladata_no_na_loc$FUEL_FACTOR == input$fueltype[3] |
pladata_no_na_loc$FUEL_FACTOR == input$fueltype[4] |
pladata_no_na_loc$FUEL_FACTOR == input$fueltype[5] |
pladata_no_na_loc$FUEL_FACTOR == input$fueltype[6] |
pladata_no_na_loc$FUEL_FACTOR == input$fueltype[7]) &
((pladata_no_na_loc$MW >= input$slider_mw[1]) & (pladata_no_na_loc$MW <
input$slider_mw[2])) &
((pladata_no_na_loc$MIN_YEAR >= input$slider_year[1]) & (pladata_no_na_loc$MIN_YEAR <
input$slider_year[2])),
select = c("enipedia_latitude", "enipedia_longitude", "MW_FACTOR", "MW", "FUEL_FACTOR"),
drop = FALSE)
})
output$map <- renderPlot({
mapPoints <- ggmap(map) +
geom_point(data = data_subset(), drop = FALSE ,
aes(x = enipedia_longitude, y = enipedia_latitude, size = MW, color = FUEL_FACTOR),
alpha = .5)
print(mapPoints)
}, height = 900, width = 1000)
}
)
1)最好的,如果你用'閃亮'標記你的問題。 2)我認爲你的結構化你的應用程序的方式,它會重新評估整個數據集,每次你改變一些東西。 3)儘量不要使用子集,如果你可以,儘可能使用[] http://stackoverflow.com/questions/9860090/in-r-why-is-better-than-subset – 2014-11-04 16:10:02
我認爲你可以使用dplyr來解決這個問題,它可以真正讓你的計算更快。 – 2017-03-19 18:38:51