How to Fix in R: (list) object cannot be coerced to type ‘double’
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
# Make a list myList <- list (10:25, 16:29, 10:12, 25:26, 32) # Print the list 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
# Make a list myList <- list (10:25, 16:29, 10:12, 25:26, 32) # Convert list to numeric vector 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
# Make a list myList <- list (10:25, 16:29, 10:12, 25:26, 32) # Convert list to numeric numeric_vector <- as.numeric ( unlist (x)) # Print the numeric equivalent 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
# Make a list myList <- list (10:25, 16:29, 10:12, 25:26, 32) # Convert list to numeric numeric_vector <- as.numeric ( unlist (x)) # Print the numeric equivalent 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
# Make a list myList <- list (10:25, 16:29, 10:12, 25:26, 32) # Convert list to numeric numeric_vector <- as.numeric ( unlist (x)) # Print the total number of # elements in the list sum ( lengths (myList)) # Print the total number of # elements in the vector length (numeric_vector) |
Output:

Output
Please Login to comment...