我有一个包含两个时间字段的数据框。我试图在这两次之间找到差异。我面临的问题是第一行的单位在所有行中全面使用。但价值在不同的单位。
以下是一个例子:
myt <- strptime("7/15/2016 7:51:33 AM", "%m/%d/%Y %I:%M:%S %p") -
strptime("7/15/2016 7:51:32 AM", "%m/%d/%Y %I:%M:%S %p")
myt[2] <- strptime("7/15/2016 7:53:32 AM", "%m/%d/%Y %I:%M:%S %p") -
strptime("7/15/2016 7:51:32 AM", "%m/%d/%Y %I:%M:%S %p")
myt
#Time differences in secs
#[1] 1 2
myt[1]
#Time difference of 1 secs
myt[2]
#Time difference of 2 secs
在这种情况下,myt[2]
的答案是2分钟而不是2秒。是否可能
答案 0 :(得分:0)
哇。我不知道这是发生了什么。
一种可能的解决方案是使用difftime()
并指定您想要的时差“单位”。
> myt <- difftime(strptime("7/15/2016 7:51:33 AM", "%m/%d/%Y %I:%M:%S %p"),
strptime("7/15/2016 7:51:32 AM", "%m/%d/%Y %I:%M:%S %p"),
units = "secs")
> myt[2] <- difftime(strptime("7/15/2016 7:53:32 AM", "%m/%d/%Y %I:%M:%S %p"),
strptime("7/15/2016 7:51:32 AM", "%m/%d/%Y %I:%M:%S %p"),
units = "secs")
> myt
Time differences in secs
[1] 1 120
感谢您指出这一点。我是datetime / POSIXct的新手,我不会意识到这个
答案 1 :(得分:0)
您可以使用多列,还是不适用于您的问题?如果它可以工作:
myt <- data.frame(strptime("7/15/2016 7:51:33 AM", "%m/%d/%Y %I:%M:%S %p") - strptime("7/15/2016 7:51:32 AM", "%m/%d/%Y %I:%M:%S %p"))
myt[,2] <- strptime("7/15/2016 7:53:32 AM", "%m/%d/%Y %I:%M:%S %p") - strptime("7/15/2016 7:51:32 AM", "%m/%d/%Y %I:%M:%S %p")
colnames(myt) <- c("time1","time2")
myt