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

将嵌套列表结构的时间序列数据集重构为标准数据框

将嵌套列表格式的传感器数据转换为标准数据框(R语言)

解决方案步骤

针对这种年→月→日→小时的多层嵌套传感器数据(每个时间节点对应分号分隔的读数),可以用tidyverse工具链快速转换成目标结构的数据框:

  1. 加载必要的包
library(tidyverse)
  1. 展开嵌套列表,提取时间层级与读数
    把嵌套的层级结构展开,得到包含年、月、日、小时和对应读数的基础数据表:
sensor_data <- N1 %>%
  enframe(name = "year") %>%
  unnest_longer(value, indices_to = "month") %>%
  unnest_longer(value, indices_to = "day") %>%
  unnest_longer(value, indices_to = "hour") %>%
  rename(readings = value)
  1. 转换日期格式并拆分读数
    合并年月日为标准日期,同时把分号分隔的读数拆分为独立的指标列:
final_df <- sensor_data %>%
  # 生成标准日期格式
  mutate(date = ymd(paste(year, month, day, sep = "-"))) %>%
  # 拆分读数字符串,自动转换为数值类型
  separate(readings, 
           into = c("T", "RH", "CO", "CO2", "CH2O", "O3", "NO2", "VOC", "PM1", "PM2.5", "PM10", "Battery"),
           sep = ";",
           convert = TRUE) %>%
  # 调整列顺序,保留需要的字段
  select(date, hour, T, RH, CO, CO2, CH2O, O3, NO2, VOC, PM1, `PM2.5`, PM10, Battery)
  1. 查看结果
    运行head(final_df)就能得到结构化的数据框,格式示例如下:
# A tibble: 3 × 14
  date       hour      T    RH    CO   CO2  CH2O    O3   NO2   VOC   PM1 `PM2.5`  PM10 Battery
  <date>     <chr> <dbl> <int> <dbl> <int> <dbl> <dbl> <dbl> <int> <int>   <int> <int>   <dbl>
1 2023-11-16 19:24  26.8    89   0.5   548 0.03  0.02   0.13     3    22      27    30    3.56
2 2023-11-16 19:34  27.8    90   0.5   550 0.032 0.021  0.14     3    23      28    31    3.55
3 2023-11-16 19:44  28.8    91   0.5   552 0.031 0.022  0.13     3    22      27    30    3.54

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 13:48:34