R时间差-2016年1月22日下午04.56.14.325.0000



我想计算数据帧的2个日期之间的持续时间,该数据帧的格式如下:

开始日期时间
2016年1月22日下午04.56.14.325.00000

结束日期时间
2016年1月23日上午05.56.14.325.00000

我运行以下命令:

jm16$diff <- difftime(strptime(jm16$Start_date_time, format = "%d-%b-%Y %H.%M.%S"), 
                      strptime(jm16$End_date_time, format = "%d-%b-%Y %H.%M%S"),
                      units="mins")

然而,最终jm16$diff的整个字段都是"NA"。有人能帮我告诉我哪里出错了吗?

感谢

Han

您需要使用的公式是:

jm16$diff <- difftime(strptime(jm16$End_date_time, format="%d-%b-%Y %I:%M.%OS %p"), 
                      strptime(jm16$Start_date_time, format="%d-%b-%Y %I:%M.%OS %p"), 
                      units="mins")

这纠正了以下问题:

  1. difftime()difftime(end_time, start_time),而不是相反
  2. %I处理1-12中的小时,而%H处理0-23
  3. 字符串中的小时后面跟着冒号,而不是句点
  4. 秒有一个小数部分,所以%OS,而不是%S
  5. 上午/下午结束时接收" %p"

最新更新