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

如何将openSkies获取的R6类航班对象转为数据框并导出CSV?

问题

我想用OpenSkies包提取香港国际机场(VHHH)的航班离港数据并导出成CSV,但把返回的R6类列表转成数据框时失败了,代码如下:

library(openSkies)
library(R6)

flights <- getAirportDepartures(airport="VHHH", startTime="2023-02-03 09:00:00",
endTime="2023-02-05 11:00:00", timeZone="Asia/Hong_Kong",maxQueryAttempts =1)

dataSet <- do.call(rbind, flights)

问题截图:
问题截图

解决方案

getAirportDepartures返回的是R6对象的列表,直接用rbind合并行不通,得先把每个R6对象转成数据框再处理:

  • 先用lapply遍历所有航班对象,调用它们自带的as.data.frame()方法,把每个R6对象转成数据框:
flight_dfs <- lapply(flights, function(flight) flight$as.data.frame())
  • 再把数据框列表合并成一个大的数据框:
dataSet <- do.call(rbind, flight_dfs)
  • 最后导出成CSV:
write.csv(dataSet, "vhhh_departures.csv", row.names = FALSE)

要是遇到列名不一致的情况,换用dplyr的bind_rows合并更稳妥:

library(dplyr)
dataSet <- bind_rows(flight_dfs)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 17:47:26