R is.logical() function checks whether an input object’s data type is logical. If the object is logical whose values are either TRUE or FALSE, it returns TRUE; otherwise, it is FALSE.
This function checks the underlying type of the object.
Due to the nature of the function, you can use it in conditional statements to validate user input.
Syntax
is.logical(obj)
Parameters
Name | Value |
obj | It is an object that needs to be checked for a logical type. |
Testing basic values
logical_val_one <- TRUE
logical_val_two <- FALSE
is.logical(logical_val_one) # TRUE
is.logical(logical_val_two) # TRUE
You can see that TRUE and FALSE are logical values and return TRUE.
Let’s pass non-logical values and see the output:
is.logical(0) # FALSE
is.logical("hello") # FALSE
0 is the logical gate, but in R, it is a numeric value, so it returns FALSE.
Testing a Vector
If you create a vector that contains TRUE or FALSE values, this function returns TRUE.
vec_logical <- c(TRUE, FALSE, TRUE, FALSE)
is.logical(vec_logical) # TRUE
If you pass a non-logical vector, it returns FALSE.
non_logical_vec <- c(1, 2, 3, 4)
is.logical(non_logical_vec) # FALSE
Testing a List
The lists are not logical objects, so even if you pass all the elements of the list as logical values, it still returns FALSE.
list_obj <- list(TRUE, FALSE)
is.logical(list_obj) # FALSE
Testing NA (Not Available)
NA represents missing value, and missing value can be anything, including logical type. So, if you pass NA to the is.logical() function, it returns TRUE.
is.logical(NA) # TRUE
Testing NaN (Not A Number)
NaN represents undefined numerical results, which means they are not logical values by default and cannot become one. So, it returns FALSE.
is.logical(NaN) # FALSE
Testing NULL
NULL represents an empty object, which means there is nothing, including logical values. Hence, it returns FALSE.
is.logical(NULL) # FALSE
That’s all!
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.