How to Fix in R: (list) object cannot be coerced to type ‘double’
Last Updated :
31 Mar, 2022
In this article, we are looking towards the way to fix the “(list) object cannot be coerced to type ‘double” error in the R Programming language.
One of the most common errors that a programmer might face in R is:
Error:
(list) object cannot be coerced to type 'double'
This error might occur when we try to transform a list of multiple elements into the numeric without using the unlist() function.
When this error might occur:
Let’s create a list first:
Example:
R
myList <- list (10:25, 16:29, 10:12, 25:26, 32)
myList
|
Output:
Output
Now we will convert the list into its numeric equivalent vector using as.numeric() function. The syntax of this function is given below:
Syntax: as.numeric(vect)
Parameter: vect: a vector of characters
R
myList <- list (10:25, 16:29, 10:12, 25:26, 32)
numeric_vector <- as.numeric (x)
|
Output:
Output
Since we haven’t used the unlist() function that is why the compiler produced the error: “object that cannot be coerced to type a ‘double’ error message”.
How to Fix the Error:
This error can be fixed by first bundling the list into a vector using unlist() function and then passing it to the numeric() function. The syntax of the unlist() function is given below:
Syntax: unlist(list)
Parameter: list: It represents a list in R
Return Type: Returns a vector
R
myList <- list (10:25, 16:29, 10:12, 25:26, 32)
numeric_vector <- as.numeric ( unlist (x))
print (numeric_vector)
|
Output:
Output
Example:
To verify whether numeric_vector is of type numeric, we can use the class() function. The syntax of the class function is given below:
Syntax: class(x)
Parameter: Here, x represents a R object
Return Type: Returns the type of the passed object i.e, x (vector, list etc)
R
myList <- list (10:25, 16:29, 10:12, 25:26, 32)
numeric_vector <- as.numeric ( unlist (x))
class (numeric_vector)
|
Output:
Output
Also, to verify whether myList and numeric_vector contain an equal number of elements we can use a combination of sum() and lengths() function for myList and length() function for numeric_vector.
The syntax of the sum() function is given below:
Syntax: length(x)
Parameter: Here, x represents a R object like a vector or list
Return Type: Returns the number of elements present in x
R
myList <- list (10:25, 16:29, 10:12, 25:26, 32)
numeric_vector <- as.numeric ( unlist (x))
sum ( lengths (myList))
length (numeric_vector)
|
Output:
Output
Share your thoughts in the comments
Please Login to comment...