convToNum {wrMisc} | R Documentation |
Convert Vector To Numeric
Description
This function checks if input vector/character string contains numbers (with or without comma) and attempts converting to numeric.
This functions was designed for extracting the numeric part of character-vectors (or matrix) containing both numbers and character-elements.
Depending on the parameters convert
and remove
text-entries can be converted to NA (in resulting numeric objects) or removed (the number of elements/lines gets reduced, in consequece).
Note: if 'x' is a matrix, its matrix-dimensions & -names will be preserved.
Note: so far Inf and -Inf do not get recognized as numeric.
Usage
convToNum(
x,
autoConv = TRUE,
spaceRemove = TRUE,
convert = c(NA, "sparseChar"),
remove = NULL,
euroStyle = TRUE,
sciIncl = TRUE,
callFrom = NULL,
silent = TRUE,
debug = FALSE
)
Arguments
x |
vector to be converted |
autoConv |
(logical) simple automatic conversion based on function |
spaceRemove |
(logical) to remove all heading and trailing (white) space (until first non-space character) |
convert |
(character) define which type of non-conform entries to convert to NAs. Note, if |
remove |
(character) define which type of non-conform entries to remove, removed items cannot be converted to |
euroStyle |
(logical) if |
sciIncl |
(logical) include recognizing scientific notation (eg 2e-4) |
callFrom |
(character) allow easier tracking of messages produced |
silent |
(logical) suppress messages |
debug |
(logical) additional messages for debugging |
Details
This function may be used in two modes, depening if argument autoConv
is TRUE
or FALSE
.
The first options allows accessing an automatic mode based on as.numeric
,
while the second options investigates all characters if they may belong to numeric expressions and allows removing specific text-elements.
Value
This function returns a numeric vector (or matrix (if 'x' is matrix))
See Also
numeric
and as.numeric
(on same help-page)
Examples
x1 <- c("+4"," + 5","6","bb","Na","-7")
convToNum(x1)
convToNum(x1, autoConv=FALSE, convert=c("allChar"))
convToNum(x1, autoConv=FALSE) # too many non-numeric instances for 'sparseChar'
x2 <- c("+4"," + 5","6","-7"," - 8","1e6","+ 2.3e4","-3E4","- 4E5")
convToNum(x2)
convToNum(x2, autoConv=FALSE, convert=NA,remove=c("allChar",NA))
convToNum(x2, autoConv=FALSE, convert=NA,remove=c("allChar",NA),sciIncl=FALSE)