我尝试构建一个闪亮的应用程序。它实际上是有效的。基本上我有一个数据集(20'000行),我用滑块和Groupcheckbox改变,然后使用ggmap绘制到地图。但它确实很慢(改变大约需要10到20秒)。有没有可能让应用程序运行得更快。它与子集函数有关吗?或者是因为ggmap情节?我添加了我的通用服务器代码。
非常感谢各种帮助。
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)
}
)
答案 0 :(得分:0)
我不完全确定,但这是我的假设。它是你在每次调用时推测数据集/子集。尝试添加提交按钮以确保一次发生所有命令。每次移动滑块时,它都会重新呈现代码,从而重新运行脚本。因此,如果你移动它3次,它基本上是再加载它。 我发现它可能是因为它不会给你的计算机留出太多空间。出于某种原因,我的一些应用程序在服务器上比我的笔记本电脑做得更好。