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

如何用dplyr同时提取dataframe首行与指定日期行?

解决方案:同时提取首行和指定日期的行

你可以通过两种简洁的方式在同一dplyr调用中获取首行和指定日期的行,下面分别说明:

方法1:给slice()传递行号向量

先找到匹配固定参考日期的行的索引,再把首行索引(1)和这个索引组合成向量传给slice():

library(dplyr)

# 示例数据(模拟每周更新的首行,dt字段包含固定参考日期)
df <- tibble(
  x = c(10, 45, 65, 10),
  dt = as.POSIXct(c("2024-05-20", "2018-01-01", "2024-05-21", "2024-05-22"), tz = "GMT")
)

# 定义你的固定参考日期
target_date <- as.POSIXct("2018-01-01", tz = "GMT")

# 获取目标日期对应的行索引
target_row_idx <- which(df$dt == target_date)

# 同时提取首行和指定日期的行
result <- slice(df, c(1, target_row_idx))
print(result)

方法2:用filter()结合行号判断(更贴合dplyr管道风格)

不需要手动计算行号,直接在filter()里同时判断首行和日期条件,代码更简洁:

result <- df %>%
  filter(row_number() == 1 | dt == target_date)

print(result)

这两种方法都能得到包含首行和指定日期行的数据框,方便后续执行数学运算。如果你的固定日期可能匹配多行,filter()会自动保留所有匹配行;which()也会返回所有匹配的索引,slice()同样会全部提取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:44:34