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

如何基于起始时间、距离和速度生成数据集的动态时间列?

问题分析与解决

你的问题核心是只计算了时间间隔的数值,但没有将这个间隔加到起始时间上,且变量命名的混淆也导致结果不符合预期。当前代码仅生成了时间差的秒数,未与起始时间df$time结合,自然无法得到随数据变化的时间序列。

解决步骤

  1. 计算每行对应的时间间隔(单位:秒),确保distance和SPEED的单位匹配(比如distance为公里、speed为公里/小时时,公式distance*3600/SPEED是正确的,得到的是秒数)
  2. 将计算出的秒数转换为时间增量,加到起始时间列上,生成实际的时间序列

代码示例

# 加载lubridate包(你已使用ymd_hms,需确保包已加载)
library(lubridate)

# 1. 计算每行的时间间隔(秒),用新变量名避免覆盖原起始时间列
df$time_interval <- df$distance * 3600 / df$SPEED

# 2. 将时间间隔转为时长对象,加到起始时间上生成实际时间列
df$actual_time <- df$time + seconds(df$time_interval)

注意事项

  • 检查单位匹配:如果distance是米、speed是米/秒,公式需改为distance / df$SPEED(直接得到秒数)
  • 清理异常值:若time_interval出现NA或无穷大值,会导致actual_time对应位置为NA,需提前过滤speed为0的行
  • 避免变量名冲突:不要复用time作为变量名,防止覆盖初始的起始时间列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 03:54:12