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