R: Type Conversion on Character Variables

type.convert {utils} | R Documentation

## Type Conversion on Character Variables

### Description

Convert a character vector to logical, integer, numeric, complex or factor as appropriate.

### Usage

    type.convert(x, na.strings = "NA", as.is = FALSE, dec = ".",
                 numerals = c("allow.loss", "warn.loss", "no.loss"))

### Arguments

`x` | a character vector.
`na.strings` | a vector of strings which are to be interpreted as `NA` values. Blank fields are also considered to be missing values in logical, integer, numeric or complex vectors.
`as.is` | logical. See ‘Details’.
`dec` | the character to be assumed for decimal points.
`numerals` | string indicating how to convert numbers whose conversion to double precision would lose accuracy, typically when `x` has more digits than can be stored in a `double`. `numerals = "allow.loss"`, default: the conversion happens with some accuracy loss. This has been the only behavior of R versions 3.0.3 and earlier. `numerals = "warn.loss"`: a `warning` about accuracy loss is signalled and the conversion happens as with `numerals = "allow.loss"`. `numerals = "no.loss"`: `x` is not converted to a number, but to a `factor` or left as character, depending on `as.is`. This has been the only behavior of R version 3.1.0.

### Details

This is principally a helper function for `read.table`. Given a character vector, it attempts to convert it to logical, integer, numeric or complex, and failing that converts it to factor unless `as.is = TRUE`. The first type that can accept all the non-missing values is chosen.

Vectors which are entirely missing values are converted to logical, since `NA` is primarily logical.

Vectors containing just `F`, `T`, `FALSE`, `TRUE` and values from `na.strings` are converted to logical. Vectors containing optional whitespace followed by decimal constants representable as R integers or values from `na.strings` are converted to integer. Other vectors containing optional whitespace followed by other decimal or hexadecimal constants (see NumericConstants), or `NaN`, `Inf` or `infinity` (ignoring case) or values from `na.strings` are converted to numeric. As from R 3.1.0, where converting inputs to numeric or complex would result in loss of accuracy they are returned as strings (for `as.is = TRUE`) or factors.

Since this is a helper function, the caller should always pass an appropriate value of `as.is`.

### Value

An atomic vector or (for `as.is = FALSE`) a factor.

### See Also

`read.table`

[Package utils version 3.1.2 Index]