2016-08-24 60 views
0

我有一個包含性能數據的數據集。第1列包含END_DATE,第2列包含START_DATE。 這兩個列中的日期時間格式:03-08-16 08:55:59,177000000 我想添加一個新的列,其中存儲時間差(以毫秒爲單位)。R 2列之間的時間差(以毫秒爲單位)

實施例:

塔1:16年3月8日08:55:59,177000000

柱2:16年3月8日08:55:59,888000000

在新的列秒:0,711

我試圖轉換爲as.POSIX ..但不知何故毫秒會丟失。有一個答案,說「OS」格式選項將做的伎倆,但我沒有成功:

time = as.POSIXct(「03-08-16 08:56:06,345000000」,格式= 「%D-%間 - %Y%H:%M:%OS」)

時間

[1] 「2016年8月3日8點56分06秒CEST」

提前致謝!

+0

我想你會需要使用'sub'您Yuropean小數點(逗號)轉換爲十進制「點」(週期)。 –

回答

1

我的評論的擴展:

d <- data.frame(col1= '03-08-16 08:55:59,177000000', col2= '03-08-16 08:55:59,888000000') 

d2 <- data.frame(lapply(d, sub, patt="[,]", repl=".")) 
d2 
#------- 
         col1      col2 
1 03-08-16 08:55:59.177000000 03-08-16 08:55:59.888000000 
#------- 
d3 <- data.frame(lapply(d2, as.POSIXct, format= "%d-%m-%y %H:%M:%OS") ) 
d3 
#-------- 
       col1    col2 
1 2016-08-03 08:55:59 2016-08-03 08:55:59 
#------- 
difftime(d3$col1, d3$col2) 
#------- 
Time difference of -0.711 secs 
+1

設置'options(digits.secs = 3)'來查看打印POSIXct對象時的小數秒數。 –

+0

非常感謝!它工作正常! – BianchiRacer

相關問題