How to convert time (mm:ss) to decimal form in R

Joe picture Joe · Mar 3, 2011 · Viewed 26.9k times · Source

I've imported a csv-file to R using RStudio where I am trying to plot points per game against minutes per game. However the minutes per game is in the format mm:ss and I'm having a hard time finding how to convert it to decimal form.

Please help!

Answer

Joris Meys picture Joris Meys · Mar 3, 2011

Given that you start with a character vector, this is relatively easy :

minPerGame <- c("4:30","2:20","34:10")

sapply(strsplit(minPerGame,":"),
  function(x) {
    x <- as.numeric(x)
    x[1]+x[2]/60
    }
)

gives

[1]  4.500000  2.333333 34.166667

Make sure you checked that you used read.csv() with the option as.is=TRUE. Otherwise you'll have to convert using as.character().