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

如何在R语言中创建包含美国各州平均经纬度的DataFrame?

解决R语言创建美国州平均经纬度DataFrame的问题

问题分析

你调用的data("state")加载的不是带经纬度列的数据框,而是基础R中一组与美国州相关的独立对象(比如state.name、state.center等),所以直接对state使用dplyr分组操作会报错——它不是结构化数据框,也没有region、lat、long这些字段。

两种可行解决方案

方案1:直接使用基础R的州中心经纬度数据

基础R内置的state.center已经包含每个州的中心经纬度,直接整理成数据框即可:

# 整理州中心经纬度为DataFrame
state_center <- data.frame(
  State = state.name,
  Latitude = state.center$y,
  Longitude = state.center$x
)

# 查看前6行结果
head(state_center)

方案2:基于多边形顶点计算平均经纬度(更精确)

如果需要通过州的多边形边界顶点计算平均经纬度,可使用maps包的map_data("state"),它提供了每个州多边形顶点的经纬度数据:

# 安装并加载所需包
install.packages(c("maps", "dplyr", "stringr"))
library(maps)
library(dplyr)
library(stringr)

# 获取州多边形顶点数据
state_points <- map_data("state")

# 分组计算每个州的平均经纬度
mean_state_data <- state_points %>%
  group_by(region) %>%
  summarise(
    mean_latitude = mean(lat),
    mean_longitude = mean(long)
  ) %>%
  # 将小写州名转换为首字母大写格式
  mutate(State = str_to_title(region)) %>%
  select(State, mean_latitude, mean_longitude)

# 查看前6行结果
head(mean_state_data)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 00:01:17