Нет аргументов без пропуска минимума и максимума

Я использую 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 ...

person Niall    schedule 08.04.2017    source источник
comment
Какая строка выдает ошибку? Код не включает явно ни min, ни max.   -  person John Coleman    schedule 08.04.2017
comment
Я получаю сообщение об ошибке после последних четырех строк, да, я подумал, может, мне нужно где-то их включить, но я не знаю, где бы это сделать.   -  person Niall    schedule 08.04.2017
comment
Ваш вопрос настолько далек от минимального воспроизводимого примера, что на самом деле сложно что-либо сказать. Некоторой функции (и вы не указали, какая именно) не нравится какой-либо ввод, который вы ей скармливаете (и мы не знаем, что это за ввод). Должны ли мы просто догадываться, в чем проблема?   -  person John Coleman    schedule 08.04.2017
comment
Прочтение этого может помочь: stackoverflow.com/q/5963269/4996248.   -  person John Coleman    schedule 08.04.2017
comment
Поскольку вы не показываете нам свои данные - по крайней мере, покажите структуру своего фрейма данных str(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
comment
Я добавил туда дополнительную информацию и свою структуру данных. Из-за количества столбцов, когда я пытаюсь показать свои данные, они становятся немного беспорядочными, но в них нет значений NA или NULL, я заменил их на UNKNOWNS или использовал среднее значение для их заполнения.   -  person Niall    schedule 08.04.2017


Ответы (2)


масштаб - это целое число от 3-20 http://stat405.had.co.nz/ggmap.pdf вы используете 1

person B Williams    schedule 08.04.2017
comment
Это не ответ на вопрос, поэтому его следует добавить в качестве комментария. - person Joris Meys; 08.04.2017
comment
Но если в данных есть НА, это объясняет, почему нет карты. Что-то вроде курицы и яйца, не так ли? - person B Williams; 08.04.2017
comment
Я просто озвучиваю ТАК политику. См. stackoverflow.com/help/how-to-answer, особенно часть об ответах на часто задаваемые вопросы. Ваш ответ был помечен в стеке отзывов как не ответ, и я просто решил сообщить вам. Я не устанавливал здесь политику ;-) - person Joris Meys; 08.04.2017
comment
ах - имеет смысл. изменил ответ. - person B Williams; 08.04.2017

Нет воспроизводимого ответа, поэтому я не могу быть уверен. Но есть (наверное) решение в пакете hablar. значит в R плохо работает с NA, Inf. Добавление функции s к lat и lon дает вам:

library(ggplot2)
library(ggmap)
library(hablar)

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(s(df$lon)), lat = mean(s(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)
person davsjob    schedule 31.10.2018