R: Coerce a character string to the same type as a target value

coerceValue {DT} | R Documentation

## Coerce a character string to the same type as a target value

### Description

Create a new value from a character string based on an old value, e.g., if the old value is an integer, call `as.integer()` to coerce the string to an integer.

### Usage

    coerceValue(val, old)

### Arguments

`val` | A character string.
`old` | An old value, whose type is the target type of `val`.

### Details

This function only works with integer, double, date, time (`POSIXlt` or `POSIXct`), and factor values. The date must be of the format `%Y-%m-%dT%H:%M:%SZ`. The factor value must be in the levels of `old`, otherwise it will be coerced to `NA`.

### Value

A value of the same data type as `old` if possible.

### Examples

    library(DT)
    coerceValue("100", 1L)
    coerceValue("1.23", 3.1416)
    coerceValue("2018-02-14", Sys.Date())
    coerceValue("2018-02-14T22:18:52Z", Sys.time())
    coerceValue("setosa", iris$Species)
    coerceValue("setosa2", iris$Species)  # NA
    coerceValue("FALSE", TRUE)  # not supported

[Package DT version 0.4 Index]