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

R语言如何整理包含独立日期行与对应数据行的dataframe

实现方法

核心逻辑为:先识别出两列值相等的日期行,提取日期值后向下填充到后续所属的时间、人员行,最后过滤掉原始日期行即可。

tidyverse方案

library(tidyverse)

# 处理数据
df_res <- df %>%
  # 提取日期行的日期值,非日期行留空
  mutate(date = if_else(a == b, a, NA_character_)) %>%
  # 向下填充空白的日期值
  fill(date, .direction = "down") %>%
  # 过滤掉原始的日期行
  filter(a != b) %>%
  # 调整列顺序并重命名(按需选择)
  select(date, time = a, name = b)

运行后得到的df_res即为目标结构,若需要输出为空格分隔的文本,可补充调用:

write.table(df_res, sep = "\t", row.names = F, col.names = F, quote = F)

base R方案

# 识别日期行
is_date <- df$a == df$b
# 给每行绑定所属的日期分组
group <- cumsum(is_date)
# 提取对应日期
dates <- df$a[is_date][group]
# 组合新数据框
df_res <- cbind(
  date = dates[!is_date],
  df[!is_date, ]
)
# 可选重命名列
colnames(df_res) <- c("date", "time", "name")

内容的提问来源于stack exchange,提问作者Jeremy K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:27:03