
Last chance! 50% off unlimited learning
Sale ends in
convToNum
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.
convToNum(
x,
autoConv = TRUE,
spaceRemove = TRUE,
convert = c(NA, "sparseChar"),
remove = NULL,
euroStyle = TRUE,
sciIncl = TRUE,
callFrom = NULL,
silent = TRUE
)
vector to be converted
(logical) simple automatic conversion based on as.numeric
; if TRUE
all other arguments exept spaceRemove
will not be considered
(logical) to remove all heading and trailing (white) space (until first non-space character)
(character) define which type of non-conform entries to convert to NAs. Note, if remove
is selected to eliminate character-entries they cannot be converted any more. Use 'allChar' for all character-entries; 'sparseChar' sparse (ie rare) character entries; NA
for converting 'Na' or 'na' to NA
; if 'none' or NULL
no conversions at all.
(character) define which type of non-conform entries to remove, removed items cannot be converted to NA
any more. Use 'allChar' for removing all character entries; NA
for removing all instances of NA
(execept thise created by converting text); all elements will be kept if 'none' or NULL
.
(logical) if TRUE
will convert all ',' (eg used as European decimal-separator) to '.' (as internally used by R as decimal-separator), thus allowing converting the European decimal format.
(logical) include recognizing scientific notation (eg 2e-4)
(character) allow easier tracking of message(s) produced
(logical) suppress messages
numeric vector (or matrix (if 'x' is matrix))
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.
numeric
and as.numeric
(on same help-page)
# NOT RUN {
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)
# }
Run the code above in your browser using DataLab