如何在R中找到时间差(处理文件所花费的时间)?

时间:2016-02-25 10:28:11

标签: r datetime time logfile-analysis

我有日志数据,它记录开始日期时间和结束日期时间戳。

日志文件中的数据如下所示 Preapred data in excel

Start_Date1 Start_Time1 Start_Millisecond1  Start_Date2 Start_Time2 Start_Millisecond2
29-11-2015  18:25:04    671 29-11-2015  18:40:05    275
29-11-2015  18:25:03    836 29-11-2015  18:40:04    333
10-11-2015  02:41:57    286 10-11-2015  02:51:52    690

当我使用Rstudio将数据加载到R中时。数据类如下所示。

Data Loaded and Its data type

我使用下面的代码行将日期转换为POSIXlt。

nov$Start.Date1<-as.POSIXlt(as.character(nov$Start.Date1), format="%d-%m-%Y")

nov <-read.csv(file = '././data/Data For R Nov CBEFF log.csv',header = TRUE,na.strings = FALSE,stringsAsFactors = FALSE)

STR(NOV $ Start.Time1)

nov $ Start.Date1&lt; -as.POSIXlt(as.character(nov $ Start.Date1),format =“%d-%m-%Y”)

nov $ Start.Time1&lt; -as.POSIXlt(as.character(nov $ Start.Time1),format =“%H:%M:%S”) nov $ Start.Time1&lt; -format(nov $ Start.Time1,format =“%H:%M:%S”)

nov $ Start.Date2&lt; -as.POSIXlt(as.character(nov $ Start.Date2),format =“%d-%m-%Y”)

nov $ Start.Time2&lt; -as.POSIXlt(as.character(nov $ Start.Time2),format =“%H:%M:%S”) nov $ Start.Time2&lt; -format(nov $ Start.Time2,format =“%H:%M:%S”)

**

&GT;我想计算完成的时间,即&gt; StartTime2-StartTime1

**

StartTime1和StartTime2现在是chr数据类型。

1 个答案:

答案 0 :(得分:1)

这应该可以解决问题。如果您已发布数据(可重现的示例),我可以检查代码。这样可能会有一些拼写错误。

nov<-read.delim("sample.csv", sep=";", dec=".")
nov$start1<-as.POSIXlt(paste(nov$Start_Date1,nov$Start_Time1 ,sep=" "), format="%d-%m-%Y %H:%M:%S")
nov$start2<-as.POSIXlt(paste(nov$Start_Date2,nov$Start_Time2 ,sep=" "), format="%d-%m-%Y %H:%M:%S")
nov$timediff<-as.numeric(difftime(nov$start2,nov$start1, unit="secs"))*1000+(nov$Start.Milisecond2-nov$Start.Milisecond1)

这为您提供以毫秒为单位的时间

修改 验证样本数据。变量名称已从“Start.Date1”更改为“Start_Date1”