Проблема визуализации при использовании Leaflet
У меня есть два кадра данных, как показано ниже:
PickUP <- data.frame(pickuplong = c(-73.93909 ,-73.94189 ,-73.93754,-73.91638,-73.92792 ,-73.88634), pickuplat =c(40.84408,40.83841,40.85311,40.84966,40.86284,40.85628))
Dropoff <- data.frame(pickuplong = c(-73.93351 ,-73.93909 ,-73.93909 ,-73.80747,-73.95722,-73.91880), pickuplat =c(40.76621,40.84408,40.85311,40.69951,40.68877,40.75917), Droplong =c(-73.91300,-73.96259 ,-73.94870,-73.93860,-73.93633, -73.90690), Droplat =c(40.77777,40.77488 ,40.78493,40.84463,40.75977,40.77013))
Я пытаюсь найти координаты захвата (долгота и широта) в кадре данных захвата, которые повторяются в кадре сбрасывания данных. У меня есть код ниже, но я получил ошибку на этом:
library(sp)
library(rgdal)
library(leaflet)
library(mapview)
library(dplyr)
a <- semi_join(Dropoff , PickUP , by = c("pickuplong","pickuplat"))
a$ID <- 1:nrow(a)
Dropoff_p <- a[, c("ID", "Pickup_longitude", "Pickup_latitude")]
Dropoff_d <- a[, c("ID", "Dropoff_longitude", "Dropoff_latitude")]
coordinates(Dropoff_p) <- ~Pickup_longitude + Pickup_latitude
coordinates(Dropoff_d) <- ~Dropoff_longitude + Dropoff_latitude
proj4string(Dropoff_p) <- CRS("+init=epsg:4326")
proj4string(Dropoff_d) <- CRS("+init=epsg:4326")
map_p <- mapview(Dropoff_p, color = "red")
map_d <- mapview(Dropoff_d, color = "blue")
map_p + map_d
Моя ошибка:
Ошибка в $ <-. Data.frame (tmp, "ID", значение = c(1L, 0L)): замена содержит 2 строки, данные имеют 0 Ошибка во время завершения: не удается открыть соединение
1 ответ
При поднаборе фрейма данных вы должны использовать те же имена столбцов. Я изменил имя столбца в Dropoff_p
, Dropoff_d
, coordinates(Dropoff_p)
, а также proj4string(Dropoff_d)
, а затем ваш скрипт работает.
В дополнение mapview
Пакет только что обновлен. Если вы хотите, вы можете обновить свой mapview
к версии 2.0.1
, Вы также можете добавить col.regions = "red"
а также col.regions = "blue"
потому что, похоже, под новой версией color
Аргумент только изменит контур точки. Чтобы изменить цвет заливки, используйте col.regions
,
library(sp)
library(rgdal)
library(leaflet)
library(mapview)
library(dplyr)
a <- semi_join(Dropoff , PickUP , by = c("pickuplong","pickuplat"))
a$ID <- 1:nrow(a)
Dropoff_p <- a[, c("ID", "pickuplong", "pickuplat")]
Dropoff_d <- a[, c("ID", "Droplong", "Droplat")]
coordinates(Dropoff_p) <- ~pickuplong + pickuplat
coordinates(Dropoff_d) <- ~Droplong + Droplat
proj4string(Dropoff_p) <- CRS("+init=epsg:4326")
proj4string(Dropoff_d) <- CRS("+init=epsg:4326")
map_p <- mapview(Dropoff_p, color = "red", col.regions = "red")
map_d <- mapview(Dropoff_d, color = "blue", col.regions = "blue")
map_p + map_d