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

如何使用R读取*.rtf气象数据文件并转换为按日期分变量的列格式

R处理RTF格式气象JSON数据转规整表格方案

实现步骤

  • 第一步:读取RTF并清理文本
    你已经用到的striprtf::read_rtf()可以直接提取RTF内的纯文本,只需要额外处理转义字符、多余空白,还原出标准JSON字符串即可。
    # 加载依赖包
    library(striprtf)
    library(jsonlite)
    library(dplyr)
    library(readr)
    
    # 替换成你的rtf文件实际路径
    file_path <- "你的气象数据.rtf"
    # 读取并清理文本
    raw_json <- read_rtf(file_path) |>
      paste0(collapse = "") |>
      gsub(pattern = "&quot;", replacement = '"', x = _) |>
      trimws()
    
  • 第二步:解析JSON为结构化数据框
    RTF内存储的内容本质是标准JSON数组格式,直接用JSON解析工具就能一键转成行列对应的表格,不需要手动拆分字段。
    # 解析JSON得到初始数据框
    weather_data <- fromJSON(raw_json)
    
  • 第三步:修正字段数据类型
    解析完的初始数据框所有字段都是字符格式,且数值类字段用逗号作为小数点(西班牙地区数字格式),统一做类型转换即可得到最终可用的规整表格:
    weather_data <- weather_data |>
      mutate(
        # 日期字段转Date类型
        fecha = as.Date(fecha),
        # 所有数值字段替换逗号小数点后转数值类型
        across(c(altitud, tmed, prec, tmin, tmax, dir, velmedia, racha, sol, presMax, presMin),
               ~ parse_number(gsub(",", ".", .x)))
      )
    

注意事项

处理超大文件时如果出现内存不足,可以把fromJSON()替换为jsonlite::stream_in(textConnection(raw_json))做流式解析,内存占用会低很多。如果解析报错,先打印raw_json检查首尾是否缺失JSON数组的方括号,手动补全即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:54:17