vigneshwaran sr vigneshwaran sr - 3 months ago 16
R Question

Display all latitude and longitude once in a MAP

I have a dataset like

latitude longitude Class prediction
9.7 21.757 244732 1
12.21 36.736 112206 0
-15.966 126.844 133969 1


Now i am trying to group all '1' at prediction column and take their latitude and longitude, later i want to display the all points on a single map.

Actually the code i wrote its takes each '1' on prediction column and takes lat and long respectively and display one point on map each time. But I want to collect all lat and long where prediction is 1 and display all points on a one map.

library(ggplot2)
library(ggmap) #install.packages("ggmap")

#data set name testData1
for (i in 1:100){

if (testData1$prediction[i]==1) {

lat <- testData1$latitude[i]
lon <- testData1$longitude[i]
df <- as.data.frame(cbind(lon,lat))

# getting the map
mapgilbert <- get_map(location = c(lon = mean(df$lon), lat = mean(df$lat)), zoom = 4,
maptype = "satellite", scale = 2)

# plotting the map with some points on it
ggmap(mapgilbert) +
geom_point(data = df, aes(x = lon, y = lat, fill = "red", alpha = 0.8), size = 5, shape = 21) +
guides(fill=FALSE, alpha=FALSE, size=FALSE)

}

}

Answer

I think you're overcomplicating things. You could simply subset df like so:

ggmap(mapgilbert) +
  geom_point(data = subset(df, prediction == 1), aes(x = lon, y = lat, fill = "red", alpha = 0.8), size = 5, shape = 21) +
  guides(fill = FALSE, alpha = FALSE, size = FALSE)