Combine los polígonos con la misma geometría en un solo polígono, manteniendo sus atributos en el polígono resultante.
Tengo un objeto de clase “sf”, donde se encuentran algunos polígonos:
id use_type area
1 housing 100
1 farming 200
2 farming 150
2 forest 100
3 housing 250
Los polígonos con el mismo valor de “id” tienen la misma geometría. También hay campos “use_type” y “area”: el primero es el nombre del tipo de uso de suelo dentro de los límites del polígono, el segundo es el área de este tipo de uso de suelo dentro de los límites del polígono. Por lo tanto, cada geometría duplicada contiene información sobre un solo tipo de uso de suelo, pero quiero eliminar duplicados y tener esta información sobre los tipos de uso de suelo en columnas, cada una representando información sobre el área de un tipo de uso de suelo específico, no distintos polígonos. Así:
id housing_area farming_area forest_area
1 100 200 NULL
2 NULL 150 100
3 250 NULL NULL
¿Cómo puedo hacer esto?
davy.ai
Puedes utilizar la función
pivot_wider()
del paquetetidyr
para lograr esto. Aquí está el código para hacerlo:Este código agrupa el
sf_object
porid
y pivota la tabla de forma más amplia utilizando la columnause_type
como origen de los nombres de las columnas y la columnaarea
como origen de los valores. Esto produce un nuevo objetosf
con la estructura deseada. Los valores faltantes se reemplazan porNULL
como se muestra en la salida deseada.