| 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)