Thiago, boa tarde!
Na concepção que tenho do R, as horas (tempo) são frações de dias (data). Desse modo, seria necessário associar o valor da hora à uma data válida. Isso para realizar operações aritméticas com os valores, como com x2...
### <code r>
x0 <- rep(seq(0, 2300, 100), each=4)+c(0,15,30,45); x0 ### Vetor de datas (15 em 15')
# x0 <- rep(seq(0, 2300, 100), each=4)+c(0,30); x0 ### Vetor de datas (30 em 30')
x1 <- formatC(x0, flag=0, width=4); x1 ### Padronizar formatos (1:00 => 01:00)
x2 <- strptime(x1, format="%H%M"); x2 ### Converter em data
x2[4]-x2[2] ### exemplo de operação com datas
### Time difference of 30 mins
x3 <- format(x2, "%H:%M"); x3 ### Produzir 'rótulos' em charater()
### Se você quer apenas os rótulos, há opções mais diretas...
paste(formatC(rep(0:23, each=4), width=2, flag=0),formatC(c(0,15,30,45), width=2, flag=0) ,sep=":") ### 15'
paste(formatC(rep(0:23, each=2), width=2, flag=0),formatC(c(0,30), width=2, flag=0) ,sep=":") ### 30'
### </code>