Я использую R для нанесения некоторых координат на карту, используя следующий код:
library(ggplot2)
library(ggmap)
smalloperations <- read.csv("S:/smalloperations.csv", na.strings=c("","NA"))
lon <- c(smalloperations$target.longitude)
lat <- c(smalloperations$target.latitude)
df <- as.data.frame(cbind(lon,lat))
# getting the map
mapgilbert <- get_map(location = c(lon = mean(df$lon), lat = mean(df$lat)),
zoom = 1, 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)
Когда я запускаю этот код, я получаю следующее предупреждение:
Предупреждающие сообщения: 1: В min (x): для min нет непустых аргументов; возвращение Inf 2: In max (x): не пропущенных аргументов max; возвращение -Inf 3: In min (x): без пропущенных аргументов min; возвращение Inf 4: In max (x): не пропущенных аргументов для max; возвращение -Inf
Затем код отображает координаты, но без карты в фоновом режиме. Я осмотрелся, и эта ошибка возникла у других людей, но решения, которые я видел, не подходят для моей конкретной проблемы. Я использую уменьшенную, очищенную версию этого набора данных из kaggle, в котором нет нули или NA в целевых долготах и широтах, которые я использую, и в нем вообще нет NA.
Моя структура данных:
'data.frame': 13 obs. of 20 variables:
$ mission.id : int 1 2 3 4 5 6 7 8 9 10 ...
$ mission.date : Factor w/ 1 level "15/08/1943": 1 1 1 1 1 1 1
1 1 1 ...
$ theater.of.operations : Factor w/ 4 levels "CBI","ETO","MTO",..: 3 4
3 3 4 4 4 4 3 3 ...
$ country : Factor w/ 2 levels "GREAT BRITAIN",..: 2 2 2
2 2 2 2 2 2 2 ...
$ air.force : Factor w/ 4 levels "10 AF","12 AF",..: 2 3 2
2 3 3 3 3 2 2 ...
$ aircraft.series : Factor w/ 4 levels "A36","B17","B24",..: 1 3
1 1 3 3 3 2 1 1 ...
$ mission.type : Factor w/ 4 levels "OBJECTIVE BOMBING",..: 4
1 4 4 1 1 3 1 4 4 ...
$ takeoff.base : Factor w/ 2 levels "PONTE OLIVO AIRFIELD",..:
1 2 1 1 2 2 2 2 1 1 ...
$ takeoff.location : Factor w/ 2 levels "SICILY","UNKNOWN": 1 2 1
1 2 2 2 2 1 1 ...
$ target.id : Factor w/ 6 levels "16140","3735",..: 4 6 5 1
6 6 6 6 3 1 ...
$ target.country : Factor w/ 5 levels "BURMA","GERMANY",..: 3 4
3 3 5 4 4 4 3 3 ...
$ target.city.or.area : Factor w/ 10 levels "BERLIN","COSENZA",..: 10
6 2 3 5 4 8 8 9 3 ...
$ target.type : Factor w/ 5 levels "AIRDROME","CITY AREA",..:
4 3 4 4 5 4 4 1 4 4 ...
$ target.industry : Factor w/ 3 levels "ARMAMENT AND ORDNANCE
PLANTS",..: 3 3 3 3 3 3 3 3 3 1 ...
$ target.priority : int 9 1 9 9 1 1 1 1 9 9 ...
$ target.latitude : num 38.22 -7.17 39.27 38.43 -1.12 ...
$ target.longitude : num 15.4 147 16.2 15.9 103.9 ...
$ altitude..hundreds.of.feet.: int 139 44 139 139 60 35 70 40 139 139 ...
$ source.id : Factor w/ 9 levels "11287","11326",..: 9 8 9
9 3 7 1 2 9 9 ...
$ bomb.type : Factor w/ 2 levels "HIGH EXPLOSIVES",..: 1 1
1 1 1 1 1 1 1 1 ...
min
, ниmax
. - person John Coleman   schedule 08.04.2017str(df)
, затем настройте свой data.frame более подходящим способом, например,df <- data.frame(lon = smalloperations$target.longitude, lat = smalloperations$target.latitude)
Посмотрите, есть ли другая структура данных. ЛюбыеNULL
значения в вашихsmalloperations
данных? В таком случае вам нужно использоватьmean(df$lon, na.rm=T)
. Или поделитесь своими данными, и кто-нибудь, вероятно, сможет ответить на вопрос прямо. - person B Williams   schedule 08.04.2017