AliCivil - 1 year ago 68

R Question

In the following data frame the 'time' column is

`character`

`id<-c(1,2,3,4)`

time<-c("00:00:01","01:02:00","09:30:01","14:15:25")

df<-data.frame(id,time)

I wonder how I can convert it to

`time`

Answer Source

Use the function `chron`

in package `chron`

:

```
time<-c("00:00:01", "01:02:00", "09:30:01", "14:15:25")
library(chron)
x <- chron(times=time)
x
[1] 00:00:01 01:02:00 09:30:01 14:15:25
```

Do some useful things, like calculating the difference between successive elements:

```
diff(x)
[1] 01:01:59 08:28:01 04:45:24
```

`chron`

objects store the values internally as a fraction of seconds per day. Thus 1 second is equivalent to `1/(60*60*24)`

, or `1/86400`

, i.e. `1.157407e-05`

.

So, to add times, one simple option is this:

```
x + 1/86400
[1] 00:00:02 01:02:01 09:30:02 14:15:26
```