【发布时间】:2016-06-15 20:53:24
【问题描述】:
我正在研究一个动物跟踪数据集,我需要计算每个人的每个 GPS 位置的时间戳之间的时间差。 为简单起见,我的数据如下所示(让我们暂时忘记其他变量):
ID Time
B1 6:57
B1 6:59
B1 7:03
B1 7:10
B2 6:34
B2 6:45
B2 6:47
B2 6:48
B3 6:23
B3 6:35
B3 6:46
B3 6:47
我尝试使用以下方法计算时差:
ddply(df, "ID",transform,timediff=diff(Time))
但是我收到此错误消息:
data.frame(list(ID = c(1L, 1L, 1L, 1L), Time = 8:11) 中的错误:
参数意味着不同的行数:4、3
我认为问题在于每个 Animal 的第一行没有值。有没有解决的办法?非常感谢任何帮助。
【问题讨论】:
-
试试
c(NA, diff(Time)) -
感谢您的快速回复!!!我试过
ddply(time, "Individual",transform,timediff=c(NA,diff(Time))但我得到一个“+”,所以我仍然缺少一些东西 -
您缺少右括号。
-
哎呀!非常感谢你们!我是 R 新手,还有很多事情要做!
-
我会认真考虑使用 dplyr 而不是 plyr。这是较新的版本,因此将提供更多支持。它有很好的功能来做到这一点,比如 mutate()!