R: Replace Time Stamps With Words

replace_time {textclean} | R Documentation

## Replace Time Stamps With Words

### Description

Replaces time stamps with word equivalents.

### Usage

    replace_time(x,
      pattern = "(2[0-3]|[01]?[0-9]):([0-5][0-9])[.:]?([0-5]?[0-9])?",
      replacement = NULL, ...)

### Arguments

`x` | The text variable.
`pattern` | Character time regex string to be matched in the given character vector.
`replacement` | A function to operate on the extracted matches or a character string which is a replacement for the matched pattern.
`...` | ignored.

### Value

Returns a vector with the pattern replaced.

### Examples

    x <- c(
        NA, '12:47 to "twelve forty-seven" and also 8:35:02',
        'what about 14:24.5', 'And then 99:99:99?'
    )

    ## Textual: Word version
    replace_time(x)

    ## Normalization: <<TIME>>
    replace_time(x, replacement = '<<TIME>>')

    ## Normalization: hh:mm:ss or hh:mm
    replace_time(x, replacement = function(y){
            z <- unlist(strsplit(y, '[:.]'))
            z[1] <- 'hh'
            z[2] <- 'mm'
            if(!is.na(z[3])) z[3] <- 'ss'
            glue_collapse(z, ':')
        }
    )

    ## Textual: Word version (forced seconds)
    replace_time(x, replacement = function(y){
            z <- replace_number(unlist(strsplit(y, '[:.]')))
            z[3] <- paste0('and ', ifelse(is.na(z[3]), '0', z[3]), ' seconds')
            paste(z, collapse = ' ')
        }
    )

    ## Normalization: hh:mm:ss
    replace_time(x, replacement = function(y){
            z <- unlist(strsplit(y, '[:.]'))
            z[1] <- 'hh'
            z[2] <- 'mm'
            z[3] <- 'ss'
            glue_collapse(z, ':')
        }
    )

[Package textclean version 0.9.3 Index]