У меня есть шейп-файл полигонов, которые являются городками в штате Айова. Я хотел бы разделить каждый элемент (то есть каждый городок) на 9 равных частей (то есть сетка 3 x 3 для каждого городка). Я понял, как это сделать, но у меня проблемы с формированием нового информационного блока из новых полигонов. Мой код ниже. Данные можно скачать здесь: https://ufile.io/wi6tt
library(sf)
library(tidyverse)
setwd("~/Desktop")
iowa<-st_read( dsn="Townships/iowa", layer="PLSS_Township_Boundaries", stringsAsFactors = F) # import data
## Make division
r<-NULL
for (row in 1:nrow(iowa)) {
r[[row]]<-st_make_grid(iowa[row,],n=c(3,3))
}
# Combine together
region<-NULL
for (row in 1:nrow(iowa)) {
region<-rbind(region,r[[row]])
}
region<-st_sfc(region,crs=4326) #convert to sfc
reg_id<-data.frame(reg_id=1:length(region)) #make ID for dataframe
# Make SF
region_df<-st_sf(reg_id,region)
Последняя строка выдает следующую ошибку:
Error in `[[<-.data.frame`(`*tmp*`, all_sfc_names[i], value = list(list( : replacement has 1644 rows, data has 14796
1664 - количество строк в исходном кадре данных Айовы.
Ясно, что количество строк не соответствует количеству элементов.
Это может быть общая вещь, а не пространственная, но я решил опубликовать все это на случай, если у кого-то возникнет идея, как сделать все это немного чище