Jak naprawić: nie można zmusić obiektu (listy) do wpisania „podwójnego”;


Typowym błędem, jaki możesz napotkać w R jest:

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

Ten błąd występuje podczas próby przekonwertowania listy składającej się z wielu elementów na elementy numeryczne bez uprzedniego użycia funkcji unlist() .

W tym samouczku przedstawiono dokładne kroki, które można wykonać, aby rozwiązać ten błąd.

Jak odtworzyć błąd

Poniższy kod próbuje przekonwertować listę wielu elementów na wartości liczbowe:

 #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'

Ponieważ nie użyliśmy funkcji unlist() , otrzymaliśmy komunikat o błędzie (lista), którego nie można zmusić do wpisania „double” .

Jak naprawić błąd

Aby przekonwertować listę na numeryczną, musimy upewnić się, że używamy funkcji 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

Możemy użyć funkcji class() , aby sprawdzić, czy x_num jest rzeczywiście wektorem wartości numerycznych:

 #verify that x_num is numeric
class(x_num)

[1] "digital"

Możemy również sprawdzić, czy lista oryginalna i lista numeryczna mają tę samą liczbę elementów:

 #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

Widzimy, że te dwie długości odpowiadają sobie.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak rozwiązać inne typowe błędy w języku R:

Jak naprawić w R: Nazwy nie pasują do poprzednich nazw
Jak naprawić w R: kontrasty można zastosować tylko do czynników o 2 lub więcej poziomach
Jak naprawić w R: długość dłuższego obiektu nie jest wielokrotnością długości krótszego obiektu

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *