2016-10-22 50 views
0

所以这一个我只是无法弄清楚。我有一个创建热图的函数。R没有完成循环内的函数调用

createHeatMap <- function(mapData){ 
    ggmap(mapImageData1, extent = 'device') + 
    geom_density2d(data = mapData, aes(x = Longitude, y = Latitude), size = 0.3) + 
    stat_density2d(data = mapData, aes(x = Longitude, y = Latitude, fill = ..level.., alpha = ..level..), size = 0.01, bins = 16, geom = "polygon") + 
    scale_fill_gradient(low = "green", high = "red") + 
    scale_alpha(range = c(0, 0.3), guide = FALSE); 
}; 

这个工作,当我传递一个数据帧到它。但是,当我尝试迭代for循环并制作多个映射时,什么都不会发生。

Users <- unique(baitStations$User); 
for (user in Users){ 
    userData <- subset(baitStations, baitStations$User == user); 
    createHeatMap(userData); 
}; 

但是,当我在for循环之外进行调用时它的工作原理。

for (user in Users){ 
    userData <- subset(baitStations, baitStations$User == user); 
    createHeatMap(userData); 
}; 

**createHeatMap(userData);** 

我不能为我的生活弄清楚什么阻止了这种运行?如果我在for循环中输入head(userData),它将输出数据帧行。所以它得到了数据框。

+0

可能不是'打印'。 (有关网格功能的FAQ)。 –

+0

延迟加载可能正在工作。尝试封装print()中的绘图。 'print(plot_here)'看看它是否有效,即使它看起来是世界上最奇怪的东西。 –

+0

把这个答案花花公子,我会把它标记为答案。 – Danrex

回答

0

评论中提到的这个困境的答案是print()热图。