Потеря данных с помощью st_join - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь выполнить пространственное соединение двух файлов формы sf. Я теряю всю информацию из второго набора данных (например, output_inmap). Какой бы набор данных ни был помещен вторым, вернет все значения NA. Кто-нибудь знает, что может происходить?

output_inmap <- st_read("processed/ceidars_data_inmap.shp")
output_inmap <-st_transform(output_inmap, crs=3310)

unzip("census-tract.zip")
census_tracts <- st_read("census-tract/tl_2019_06_tract.shp")

st_transform(census_tracts, crs = 3310)
st_transform(output_inmap, crs = 3310)

TC_1<- st_join(census_tracts, output_inmap) 

Я теряю всю информацию из второго набора данных (т.е. output_inmap). Какой бы набор данных ни был помещен вторым, вернет все значения NA. Кто-нибудь знает, что может происходить?

1 Ответ

0 голосов
/ 11 августа 2020

Ваш второй st_transform (из переписных участков), кажется, ни к чему не ведет; рассмотрите этот код (слегка скорректированный с помощью канала стиля dplyr), чтобы оба пространственных объекта находились в одном CRS.

Вы также можете рассмотреть возможность установки параметра слева от вызова sf::st_join() (по умолчанию true) на false = изменить поведение с левого (сохранение) на внутренний (фильтрующий) стиль соединения. Иногда это делает код более лаконичным.

library(sf)
library(dplyr)

output_inmap <- st_read("processed/ceidars_data_inmap.shp") %>%
   st_transform(crs=3310)

unzip("census-tract.zip")
census_tracts <- st_read("census-tract/tl_2019_06_tract.shp") %>%
   st_transform(crs = 3310)


TC_1<- st_join(census_tracts, output_inmap) 
...