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

R语言如何将航班到达数据的字符列转换为时间类型以绘制ggplot2图表

解决步骤

首先你的原始数据存在两处需要先清理的问题:

  • 国泰航空ETA值存在输入错误:9=19:30:00 PM里多了冗余前缀9=
  • 部分时间后缀带PM,且时间本身已经是24小时制格式,PM属于冗余内容

第一步:清理并转换时间列

用字符串处理先清理脏数据,再用hms包的as_hms转换为时分秒类型,代码如下:

library(tidyverse)
library(hms)

# 清理数据+转换时间类型
clean_data <- dataset %>%
  # 去除冗余字符:9= 以及 PM后缀
  mutate(Value = str_remove_all(Value, "9=|\\s*PM")) %>%
  # 转换为hms时间类型
  mutate(time_val = as_hms(Value))

# 查看转换后结构
str(clean_data)

转换后的time_val列就是标准的时分秒时间类型,可以直接作为Y轴传入ggplot。

第二步:绘图示例

以航空公司为X轴,时间为Y轴,区分ETA和实际到达时间为例:

ggplot(clean_data, aes(x = flights, y = time_val, color = attribute)) +
  geom_point(size = 3) +
  labs(y = "时间", x = "航空公司", color = "时间类型") +
  # 可选:调整Y轴时间显示格式
  scale_y_hms(breaks = hms(hours = seq(9, 21, 2)), 
              labels = scales::label_time(format = "%H:%M")) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:48:04