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