[英]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.