min 和 max 没有非缺失参数

No non-missing arguments to min and max

我正在使用 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)

当我 运行 此代码时,我收到此警告:

Warning messages: 1: In min(x) : no non-missing arguments to min; returning Inf 2: In max(x) : no non-missing arguments to max; returning -Inf 3: In min(x) : no non-missing arguments to min; returning Inf 4: In max(x) : no non-missing arguments to max; returning -Inf

然后代码显示坐标但背景中没有地图。我环顾四周,其他人也发生过这个错误,但我看到的解决方案似乎并不适合我的具体问题。 我正在使用 this dataset from 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 ...

zoom 是一个 3-20 的整数http://stat405.had.co.nz/ggmap.pdf 你用的是 1

没有可重复的答案,所以我不能确定。但是在 hablar 包中(可能)有一个解决方案。 R 中的均值不适用于 NA,Inf。在 lat 和 lon 上添加 s 函数可以得到:

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)