Como corrigir: o objeto (lista) não pode ser forçado a digitar “double”;


Um erro comum que você pode encontrar em R é:

 Error: (list) object cannot be coerced to type 'double'

Este erro ocorre quando você tenta converter uma lista de vários elementos em elementos numéricos sem primeiro usar a função unlist() .

Este tutorial compartilha as etapas exatas que você pode usar para resolver esse erro.

Como reproduzir o erro

O código a seguir tenta converter uma lista de vários itens em valores numéricos:

 #create list
x <- list(1:5, 6:9, 7)

#display list
x

[[1]]
[1] 1 2 3 4 5

[[2]]
[1] 6 7 8 9

[[3]]
[1] 7

#attempt to convert list to numeric
x_num <- as. numeric (x)

Error: (list) object cannot be coerced to type 'double'

Como não utilizamos a função unlist() , recebemos a mensagem de erro (lista) não pode ser forçado a digitar “double” .

Como corrigir o erro

Para converter a lista em numérico, precisamos ter certeza de usar a função unlist() :

 #create list
x <- list(1:5, 6:9, 7)

#convert list to numeric
x_num <- as. numeric (unlist(x))

#display numeric values
x_num

[1] 1 2 3 4 5 6 7 8 9 7

Podemos usar a função class() para verificar se x_num é de fato um vetor de valores numéricos:

 #verify that x_num is numeric
class(x_num)

[1] "digital"

Também podemos verificar se a lista original e a lista numérica possuem o mesmo número de elementos:

 #display total number of elements in original list
sum(lengths(x))

[1] 10

#display total number of elements in numeric list
length(x_num)

[1] 10

Vemos que os dois comprimentos correspondem.

Recursos adicionais

Os tutoriais a seguir explicam como resolver outros erros comuns em R:

Como corrigir em R: os nomes não correspondem aos nomes anteriores
Como corrigir em R: contrastes só podem ser aplicados a fatores com 2 ou mais níveis
Como corrigir em R: o comprimento de um objeto mais longo não é múltiplo do comprimento de um objeto mais curto

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *