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

如何将通过R获取的航班数据转换为DataFrame或表格以进行分析?

把Aviationstack API数据转换为R DataFrame的解决方案

你从API获取的flight_data是包含元数据和航班数据列表的嵌套结构,核心航班信息存储在flight_data$data元素中。以下是几种实用的转换方式:

方法1:直接扁平化转换(适配简单结构)

调用fromJSON时添加flatten = TRUE参数,自动将嵌套JSON结构展开为扁平列,再直接转为DataFrame:

library(httr)
library(jsonlite)

# 重新获取数据并同步扁平化处理
nflight = GET('http://api.aviationstack.com/v1/flights?access_key=709b8cba703074de66ca50f1c5c69ce6')
flight_data = fromJSON(rawToChar(nflight$content), flatten = TRUE)

# 提取航班数据并转为DataFrame
flight_df = as.data.frame(flight_data$data)

# 查看前几行数据验证结果
head(flight_df)

方法2:手动展开嵌套结构(适配复杂嵌套)

如果数据包含多层嵌套子对象(比如departure、arrival这类多字段子结构),可以用tidyr的unnest_wider逐步展开:

library(httr)
library(jsonlite)
library(tidyr)
library(dplyr)

# 基于已获取的flight_data处理
flight_data = fromJSON(rawToChar(nflight$content))

# 转换为tibble并展开嵌套字段
flight_df = flight_data$data %>%
  as_tibble() %>%
  # 展开departure下的所有字段,用下划线拼接前缀区分
  unnest_wider(departure, names_sep = "_") %>%
  # 展开arrival下的所有字段
  unnest_wider(arrival, names_sep = "_")

# 检查最终数据结构
str(flight_df)

关键提示

  • 用str(flight_data)查看原始返回结构,确认核心数据的位置
  • 若遇到数组类列表列,可使用unnest_longer处理(比如多状态的航班记录)
  • 转换完成后,用summary(flight_df)查看数据统计信息,为后续分析做准备

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 13:40:54