You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对R语言sf对象按geometry与sector字段聚合统计项目数量

报错原因

base R原生的aggregate函数不支持将sfc类型的几何列(列表格式存储)直接作为公式接口的分组变量,强行unlist几何列会将每个点位的经纬度拆分为单独元素,导致长度是原数据行数的2倍,和sector列长度不匹配,因此出现报错。

正确实现方法

方案1:使用sf包重载的aggregate方法

sf包专门针对空间数据重写了aggregate函数,直接支持geometry作为分组变量,输出结果仍为sf对象,保留空间属性:

# 需提前加载sf包
library(sf)
FDI_sf_ag1 <- aggregate(n_proj ~ geometry + sector, data = FDI_sf, FUN = sum)

方案2:使用dplyr+sf的tidyverse风格写法

更适合习惯tidy语法的用户,逻辑更直观:

# 需提前加载相关包
library(sf)
library(dplyr)

FDI_sf_ag1 <- FDI_sf %>% 
  group_by(geometry, sector) %>% 
  summarise(total_n_proj = sum(n_proj), .groups = "drop")

内容的提问来源于stack exchange,提问作者nflore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:06:04