2016-10-22 2 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);** 

Я не могу на всю жизнь выяснить, что блокирует это от бега? Если I head(userData) из цикла for, он печатает строки данных. Таким образом, он получает dataframe.

+0

Возможно, не 'print'-ing. (FAQ по функциям сетки.) –

+0

Ленивая загрузка может быть на работе. Попробуйте инкапсулировать печать в print(). 'print (plot_here)' и посмотреть, работает ли он, хотя это кажется самой странной вещью в мире. –

+0

Положите это на ответы чувака, и я отмечу это как ответ. – Danrex

ответ

0

Ответ на эту дилемму, как упоминалось в комментариях, заключался в печати() тепловой карты.

Смежные вопросы