R 如何使用不同单位创建difftime列

R 如何使用不同单位创建difftime列,r,dataframe,R,Dataframe,我有一个带有两个时间域的数据帧。我正试图找出这两次之间的区别。我面临的问题是,第一行的单位在所有行中都被广泛使用。但值的单位不同 以下是一个例子: 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:

我有一个带有两个时间域的数据帧。我正试图找出这两次之间的区别。我面临的问题是,第一行的单位在所有行中都被广泛使用。但值的单位不同

以下是一个例子:

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

mytWow。我不知道这会发生

一种可能的解决方案是使用
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
>myt-myt[2]myt
以秒为单位的时差
[1]   1 120

谢谢你指出这一点。我是datetime/POSIXct方面的新手,我不会意识到这一点,

您可以使用多个列,还是这对您的问题不起作用?如果可行:

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

myt我想我知道它为什么显示“错误”。在创建myt时,向量被初始化为具有属性“secs”;向向量添加元素不会改变单位(即仅添加时间差的数值解?)。谢谢。我使用了您的方法,将整个列转换为秒,以后可以在需要时在行级别进行转换。@Sai,很高兴知道它适合您。祝你万事如意!谢谢你,菲尔。在我的例子中,我处理的是一个大型数据集,使用多个列是不可行的。