Я пытаюсь объединить некоторые данные в R, я хочу добавить информацию о переписи о районах, кварталах и т. Д. ... в координаты, которые у меня есть.Мои данные выглядят следующим образом:
census_data <- blocks <- tigris::blocks("NY", "Kings", 2010) #manhattan data
long_lat <- raw_data %>% select(pickup_longitude, pickup_latitude)
long_lat - это фрейм данных и:
head(long_lat)
# A tibble: 6 x 2
pickup_latitude pickup_longitude
<dbl> <dbl>
1 40.8 -74.0
2 40.7 -74.0
3 40.8 -74.0
4 40.7 -74.0
5 40.7 -74.0
6 40.8 -74.0
class(blocks)
[1] "sf" "data.frame"
head(blocks)
Simple feature collection with 6 features and 17 fields
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -73.98255 ymin: 40.58305 xmax: -73.92447 ymax: 40.62601
epsg (SRID): 4269
proj4string: +proj=longlat +datum=NAD83 +no_defs
Я конвертирую свои данные long_lat для объединения с данными из моих блоков следующим образом:
long_lat_st <- st_as_sf(long_lat, coords = c("pickup_longitude",
"pickup_latitude"),
crs = st_crs(blocks))
Для аргумента crs я просто передаю его в соответствии с данными блоков.Я пытался вручную закодировать его как: "+ proj = longlat + datum = NAD83", но когда я это сделаю, я получу несовпадение crs, несмотря на мои спецификации.
После запуска этой функции у меня есть следующее:
head(long_lat_st)
Simple feature collection with 6 features and 0 fields
geometry type: POINT
dimension: XY
bbox: xmin: -74.01006 ymin: 40.72139 xmax: -73.96774 ymax: 40.77356
epsg (SRID): 4269
proj4string: +proj=longlat +datum=NAD83 +no_defs
geometry
1 POINT (-73.97399 40.75726)
2 POINT (-74.01006 40.72139)
3 POINT (-73.97784 40.77356)
4 POINT (-73.9964 40.73223)
5 POINT (-73.9786 40.72432)
6 POINT (-73.96774 40.76598)
Теперь строки proj4 совпадают.
Можно ли передавать аргумент crs так, как я это сделал, или он делает недействительными мои longlat пары?
Отсюда я могу присоединиться к своим данным без ошибок:
joined <- st_join(long_lat_st, blocks, left = FALSE)
Я думаю, что это сработало правильно, но я просто хочу быть уверен.