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

如何在R中按数据框首列时间戳合并行,实现单时间戳单行?

解决方案

1. 合并行:每个时间戳对应一行

针对你提供的table1,可以通过按time和buoy分组,提取每个深度列的非NA值实现合并行的需求:

library(tidyverse)

table1 <- tribble(
  ~time, ~buoy, ~depth1, ~depth2, ~depth3,
  "t1",  "b1",  NA,     NA,     "value",
  "t1",  "b1",  NA,     "value", NA,
  "t1",  "b1",  "value", NA,     NA,
  "t2",  "b1",  NA,     NA,     "value",
  "t2",  "b1",  NA,     "value", NA,
  "t2",  "b1",  "value", NA,     NA
)

# 合并行:每个time+buoy组保留非NA值
merged_table <- table1 %>%
  group_by(time, buoy) %>%
  summarize(
    depth1 = first(na.omit(depth1)),
    depth2 = first(na.omit(depth2)),
    depth3 = first(na.omit(depth3)),
    .groups = "drop"
  )

merged_table

运行后得到的结果即为每个时间戳对应一行,各深度列均有有效值:

# A tibble: 2 × 5
  time  buoy  depth1 depth2 depth3
  <chr> <chr> <chr>  <chr>  <chr> 
1 t1    b1    value  value  value 
2 t2    b1    value  value  value 

2. 转换为以深度为变量的长格式

如果需要的是长格式(每行对应一个时间-浮标-深度的组合),可在合并后用pivot_longer重塑数据:

long_format <- merged_table %>%
  pivot_longer(
    cols = starts_with("depth"),
    names_to = "depth",
    values_to = "value"
  )

long_format

结果如下:

# A tibble: 6 × 4
  time  buoy  depth  value
  <chr> <chr> <chr>  <chr>
1 t1    b1    depth1 value
2 t1    b1    depth2 value
3 t1    b1    depth3 value
4 t2    b1    depth1 value
5 t2    b1    depth2 value
6 t2    b1    depth3 value

3. 从宽格式(table2样式)转回目标格式

若你已有table2这类以深度为行、时间为列的宽格式数据,可通过两次重塑转换为时间为行、深度为列的格式:

table2 <- tribble(
  ~depth, ~buoy, ~time1, ~time2,
  "depth1",   "b1",  "value", "value",
  "depth2",   "b1",  "value", "value",
  "depth3",   "b1",  "value", "value"
)

# 先转成长格式,再重塑为时间为行的宽格式
target_format <- table2 %>%
  pivot_longer(
    cols = starts_with("time"),
    names_to = "time",
    values_to = "value"
  ) %>%
  pivot_wider(
    names_from = depth,
    values_from = value
  )

target_format

结果:

# A tibble: 2 × 4
  time  buoy  depth1 depth2 depth3
  <chr> <chr> <chr>  <chr>  <chr> 
1 time1 b1    value  value  value 
2 time2 b1    value  value  value 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 19:07:42