簡體   English   中英

列中時間與r之間的差異

[英]difference between columns with time in r

我有一個數據框,其中有兩列有輸入和輸出時間,我試圖在另一列中獲得以秒為單位的時間差。

 ` ## intime ##     |s  ## outtime ##

 1. 6/20/2017 1:47  |s  6/20/2017 1:47
 2. 6/20/2017 3:32  |s  6/20/2017 3:32
 3. 6/20/2017 21:45 |s  6/20/2017 21:45
 4. 6/23/2017 0:15  |s 6/23/2017 0:15
 5. 6/17/2017 1:30  |s 6/17/2017 1:30`

我試過用

 `t<-c(m1$intime)
  t1<-c(m1$outime)
  dt <- as.POSIXct(t)
#Error in as.POSIXct.numeric(t) : 'origin' must be supplied
  dt <- as.POSIXct(t1)
#Error in as.POSIXct.numeric(t1) : 'origin' must be supplied`

嘗試使用鏈接時差給出錯誤的代碼

difftime(t2, t1) Error in as.POSIXlt.character(as.character(x), ...) : character string is not in a standard unambiguous format

不知道我哪里錯了。 列是整數類型。

謝謝。

這里有幾個問題。

如果您的列是整數,則as.POSIXct會將它們解釋為自特定時間以來的秒數,該時間由錯誤引用的origin參數定義。

如果您的列是字符但不是標准格式,則必須告訴as.POSIXct如何解釋字符串的不同部分。

以下是來自?as.POSIXct的示例:

as.POSIXct("2011-03-27 01:30:00", format = "%Y-%m-%d %H:%M:%S")

如果您的列實際上看起來像"6/20/2017 1:47" ,那么您應該可以使用:

as.POSIXct("6/20/2017 1:47", format = '%m/%d/%Y %H:%M')

要么

as.POSIXct(m1$intime, format = '%m/%d/%Y %H:%M')

但目前還不清楚你的列是如何整數的,仍然看起來像你發布的表。

錯誤表示您需要前進的一切。 as.POSIX*會給您一個錯誤,因為您沒有標准日期格式。 檢查功能?strptime 另外, 這里有一篇關於R日期的好文章

> x=c("6/20/2017 1:47")
> library(lubridate)
> y=mdy_hm(x)
> y
[1] "2017-06-20 01:47:00 UTC"

所以按照給定的數據

df1$intime=mdy_hm(df1$intime)
df1$outtime-mdy_hm(df1$outime)
df$timefidd=difftime(df1$intime,df1$outtime,units='secs')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM