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

在R中处理行列混合的NOAA飓风CSV数据集:数据整理求助

处理NOAA飓风数据的混合列问题

从你提供的数据来看,date_index列混合了飓风标识符(如AL011851)和观测日期,且newname列已经标记了新飓风的起始行(TRUE对应标识符行),可以用以下步骤拆分并整理数据:

步骤1:加载必要的包(首次运行需先安装)

# 安装依赖包
install.packages(c("tidyr", "dplyr", "lubridate"))

# 加载包
library(tidyr)
library(dplyr)
library(lubridate)

步骤2:提取并填充飓风标识符

先从date_index列中提取飓风编号,再向下填充到对应的观测行:

df <- df %>%
  # 仅在新飓风行记录编号,其余行留空
  mutate(hurricane_id = ifelse(newname, date_index, NA)) %>%
  # 向下填充编号,让每个观测行对应正确的飓风
  fill(hurricane_id, .direction = "down")

步骤3:提取并转换观测日期

把date_index中的纯数字日期提取出来,转换成标准日期格式:

df <- df %>%
  # 仅在观测行提取日期字符串
  mutate(raw_date = ifelse(!newname, date_index, NA)) %>%
  # 填充日期(同一飓风的观测日期通常连续重复)
  fill(raw_date, .direction = "down") %>%
  # 转成标准日期格式
  mutate(observation_date = ymd(raw_date)) %>%
  # 删除临时列
  select(-raw_date)

步骤4:清理冗余列(可选)

拆分完成后可移除原date_index列,调整列顺序让核心信息前置:

df <- df %>%
  select(-date_index) %>%
  relocate(hurricane_id, observation_date)

处理后的数据示例

运行上述代码后,前6行数据会变成这样:

head(df)
#>   hurricane_id observation_date             time n_entries type wind newname
#> 1     AL011851       1851-06-25            UNNAMED      14        NA   TRUE
#> 2     AL011851       1851-06-25           0000                HU   80  FALSE
#> 3     AL011851       1851-06-25           0600                HU   80  FALSE
#> 4     AL011851       1851-06-25           1200                HU   80  FALSE
#> 5     AL011851       1851-06-25           1800                HU   80  FALSE
#> 6     AL011851       1851-06-25           2100           L HU   80  FALSE

备选方案(不依赖newname列)

如果newname列不可靠,可直接通过date_index的格式识别:

df <- df %>%
  # 匹配以两个大写字母开头的飓风编号
  mutate(hurricane_id = ifelse(grepl("^[A-Z]{2}", date_index), date_index, NA)) %>%
  fill(hurricane_id, .direction = "down") %>%
  # 匹配8位纯数字的日期
  mutate(raw_date = ifelse(grepl("^\\d{8}$", date_index), date_index, NA)) %>%
  fill(raw_date, .direction = "down") %>%
  mutate(observation_date = ymd(raw_date)) %>%
  select(-raw_date, -date_index) %>%
  relocate(hurricane_id, observation_date)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:48:14