Whether you want to perform calculations efficiently or derive accurate analysis, you need a double-precision numeric format.
Double-precision numbers provide higher precision than single-precision numbers making it more efficient in numeric calculations.
That’s where as.double() and is.double() functions come into the picture.
as.double()
The as.double() function converts an input R object, such as integers or characters, to double-precision floating point numbers.
Syntax
as.double(obj, …)
Parameters
Name | Value |
obj | It is an input R object to be converted into a double-precision floating number. |
… | Another potential argument. |
Integer vector conversion
vec <- 1:5
float_vec <- as.double(vec) # 1 2 3 4 5
float_vec
typeof(float_vec) # "double"
Character vector
If a character vector represents a valid integer number, then as.double() function tries to coerce it into a double-precision number.
character_vec <- "21"
double_value <- as.double(character_vec)
print(double_value) # 21
print(typeof(double_value)) # "double"
Non-numeric Conversion
If you pass a character vector that is not a valid “numeric value”, it returns “NA” as output.
string_vec <- "KRUNAL"
double_val <- as.double(string_vec)
print(double_val) # NA
Logical vector
The as.double() function converts the TRUE boolean value to 1 and the FALSE boolean value to 0.
bool_true <- TRUE
bool_false <- FALSE
double_true <- as.double(bool_true)
double_false <- as.double(bool_false)
print(double_true) # 1
print(double_false) # 0
Factor
The factor is a categorical data type that has its levels.
If the factor levels are numeric, they will be converted to numeric values. However, if the levels are non-numeric, you might get unexpected results or errors.
factor_value <- factor(c("11", "21", "19"))
double_fact <- as.double(factor_value)
print(double_fact) # 11 21 19
is.double()
The is.double() function checks if an input object is a type of “double”. It returns TRUE if the value has class “double” and FALSE otherwise.
Syntax
is.double(obj)
Parameters
Name | Value |
obj | It is an input R object to test and find whether it is of type “double.” |
Visual representation
Example
num_vec <- 1:5
is_it_double <- as.double(num_vec)
is.double(is_it_double) # TRUE
Let’s pass non-numeric value.
char_vec <- "Krunal"
is.double(char_vec) # FALSE
That’s it.
Krunal Lathiya is a seasoned Computer Science expert with over eight years in the tech industry. He boasts deep knowledge in Data Science and Machine Learning. Versed in Python, JavaScript, PHP, R, and Golang. Skilled in frameworks like Angular and React and platforms such as Node.js. His expertise spans both front-end and back-end development. His proficiency in the Python language stands as a testament to his versatility and commitment to the craft.