I have a dataframe containing 3 columns including minutes and hours.
I want to convert these columns (namely minutes and column) to time format. Given the data in drame
:
Score Hour Min
10 10 56
23 17 01
I would like to get:
Score Time
10 10:56:00
23 17:01:00
You could use ISOdatetime
to convert the numbers in the hour
and min
to a POSIXct
object. However, a POSIXct object is only defined when it also includes a year, month and day. So depending on your needs to can do several things:
ISOdatetime
. ISOdatetime
returns a so called POSIXct
object, which is an R object which represents time. Then in ISOdatetime
you just use fixed values for year
, month
, and day
. This ofcourse only works if your dataset does not span multiple years. Time
, you can convert the POSIXct
output to string using strftime
. By setting the format
argument to "%H:%M:00"
. In this case however, you could also use sprintf
to create the new character column without converting to POSIXct
: sprintf("%s:%s:00", drame$Hour, drame$Min)
.You can use paste() function to merge the two column data into a char and then use strptime() to convert to timestamp
x<-1:6
##1 2 3 4 5 6
y<-8:13
## 8 9 10 11 12 13
timestamp <- paste(x,":",y,":00",sep="")
timestamp
will result in
#1:8:00 2:9:00 3:10:00 4:11:00 5:12:00 6:13:00
If you prefer to convert this to timestamp object try using
strptime(mergedData,"%H:%M:%S")
## uses current date by default
if you happen to have Date in another column use paste() to make a char formattted date and use below to get date time
##strptime(mergedData,"%d/%m/%Y %H:%M:%S")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With