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