【问题标题】:Calculate all time differences between points in R (instead of from one point to the next one)计算 R 中点之间的所有时间差(而不是从一个点到下一个点)
【发布时间】:2019-06-10 13:42:36
【问题描述】:

我想计算 POSIXct 格式的时间差异。我可以使用

计算连续点之间的差异
diff(data$time)

但不是所有人反对所有人。所以我猜我的数据至少是正确导入的。

我实际上想计算一个人的点之间的所有距离,所以我的数据看起来像:Posix, individual, otherinfo。如果有一种简单的方法,我很想自动计算每个人所有点的差异。如果不是那么直截了当,我会为每个人做数据子集,那很好。

如果有人可以帮助我,我会很高兴!我试过了

     dist(data$time)

因为我知道它是一个距离矩阵计算工具,但不幸的是它只是给了我一个上升数字的列表 (1,2,3,...) 所以我猜它不熟悉时间格式..

非常感谢!

【问题讨论】:

    标签: r matrix time diff difference


    【解决方案1】:

    我们可以使用sapply

    sapply(data$time, `-`, data$time)
    

    outer

    outer(data$time, data$time, FUN = `-`)
    

    【讨论】:

    • 我刚刚尝试过:dist(diff(ba004$newtime), method = "euclidean") 并且有效!我将不得不做个别的子集。但那很好。所以非常感谢你的快速回答!我现在也尝试了你的代码。你知道它会省略哪个单位吗?
    • 你编码的结果是哪个单位?我有年月日小时:分钟:秒作为数据单位。当我运行你的代码时,我得到一个十进制数
    • @Sofia 可能,最好使用difftime 而不是- 并指定unit 这样就不会有任何意外
    • @Sofia 你能试试sapply(data$time, function(x) difftime(data$time, x, unit = "min"))
    猜你喜欢
    • 1970-01-01
    • 2021-09-17
    • 2018-03-23
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多