Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
An `as.numeric()` in R that warns about non-numeric values
as.numeric.verbose = function(x) {
# this code will parse german-style comma-as-decimal numbers or
# english-style dot-as-decimal numbers.
x = ifelse(grepl('^\\d+,\\d+$', x, perl=T), sub(',', '.', x, fixed=T), x)
x.num = as.numeric(x)
# Find which values got coerced to NA
coerced = which(!is.na(x) & is.na(x.num))
if (length(coerced) > 0) {
cat("Following values coerced to NA:\n")
print(paste(coerced, x[coerced]))
}
x.num
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment