type.convert
Type Conversion on Character Variables
Convert a character vector to logical, integer, numeric, complex or factor as appropriate.
- Keywords
- manip
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 adouble
.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 withnumerals = "allow.loss"
. numerals = "no.loss"
:x
is not converted to a number, but to afactor
or left as character, depending onas.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.