R 使用时间和日期变量查找时间间隔

R 使用时间和日期变量查找时间间隔,r,date,time,R,Date,Time,我有以下格式的多个日期变量(“01-Jan-2010”),几乎是%d-%b-%Y,我还有多个军用格式的时间变量 对于事件1,有date1和time1,对于事件2,有date2和time2 如何在R中获取事件之间的时差(以分钟为单位) 提前谢谢 event1 event1_time event1_date event2 event2_time event_2date 1 14:13 2014-10-10 1 15:34 2014-10-11

我有以下格式的多个日期变量(
“01-Jan-2010”
),几乎是
%d-%b-%Y
,我还有多个军用格式的时间变量

对于事件1,有date1和time1,对于事件2,有date2和time2

如何在R中获取事件之间的时差(以分钟为单位)

提前谢谢

event1 event1_time  event1_date event2 event2_time event_2date
1        14:13        2014-10-10   1     15:34         2014-10-11
1        16:15        2011-02-01   1     18:22         2011-02-02
这里有一个选择

# Define a function to parse the `date` and `time` strings
to_dt <- function(date, time)
    strptime(sprintf("%s %s", date, time), format = "%Y-%m-%d %H:%M")

transform(
    df,
    diff = difftime(
        to_dt(event_2date, event2_time),
        to_dt(event1_date, event1_time),
        units = "mins"))
#  event1 event1_time event1_date event2 event2_time event_2date      diff
#1      1       14:13  2014-10-10      1       15:34  2014-10-11 1521 mins
#2      1       16:15  2011-02-01      1       18:22  2011-02-02 1567 mins
如果您希望在另一个单位(例如天)中使用差异,可以在
difftime
中使用
units=“days”
(查看
?difftime
以查看更多选项)


样本数据
df这里有一个选项

# Define a function to parse the `date` and `time` strings
to_dt <- function(date, time)
    strptime(sprintf("%s %s", date, time), format = "%Y-%m-%d %H:%M")

transform(
    df,
    diff = difftime(
        to_dt(event_2date, event2_time),
        to_dt(event1_date, event1_time),
        units = "mins"))
#  event1 event1_time event1_date event2 event2_time event_2date      diff
#1      1       14:13  2014-10-10      1       15:34  2014-10-11 1521 mins
#2      1       16:15  2011-02-01      1       18:22  2011-02-02 1567 mins
如果您希望在另一个单位(例如天)中使用差异,可以在
difftime
中使用
units=“days”
(查看
?difftime
以查看更多选项)


样本数据
df请包括代表性和最小样本数据,例如使用
dput
。我不知道你在问什么,你期望输出什么。我也不熟悉“军事格式”这个术语。军事格式是24小时格式,如18:37、15:51和你的最小和可复制的样本数据?我的工作中有这些数据。我试图编辑我的问题。我希望这会有所帮助。请包括代表性和最低限度的样本数据,例如使用
dput
。我不知道你在问什么,你期望输出什么。我也不熟悉“军事格式”这个术语。军事格式是24小时格式,如18:37、15:51和你的最小和可复制的样本数据?我的工作中有这些数据。我试图编辑我的问题。我希望这会有帮助。谢谢你的帮助。我很感激。非常欢迎你@CyberSpear。在堆栈溢出问题上,不需要说谢谢(这些评论通常会在一段时间后被mods删除;-)。相反,你应该考虑通过在答案旁边设置绿色的复选标记来结束问题。这样有助于保持整洁,让其他人更容易发现相关问题。它还为原始问题海报和回答者提供了少量的声誉奖励。使用相同的代码,如何获得平均时间。我试过psych::Descripte、favstats和skim,我得到的都是错误?@CyberSpear我不确定我是否理解你的要求。最好用一些样本数据和您预期的结果来问一个新问题。谢谢您的帮助。我很感激。非常欢迎你@CyberSpear。在堆栈溢出问题上,不需要说谢谢(这些评论通常会在一段时间后被mods删除;-)。相反,你应该考虑通过在答案旁边设置绿色的复选标记来结束问题。这样有助于保持整洁,让其他人更容易发现相关问题。它还为原始问题海报和回答者提供了少量的声誉奖励。使用相同的代码,如何获得平均时间。我试过psych::Descripte、favstats和skim,我得到的都是错误?@CyberSpear我不确定我是否理解你的要求。最好用一些样本数据和您的预期输出来问一个新问题。
df <- read.table(text =
    "event1 event1_time  event1_date event2 event2_time event_2date
1        14:13        2014-10-10   1     15:34         2014-10-11
1        16:15        2011-02-01   1     18:22         2011-02-02", header = T)