Problembehebung: objekt (liste) kann nicht gezwungen werden, „double“ einzugeben;
Ein häufiger Fehler, der in R auftreten kann, ist:
Error: (list) object cannot be coerced to type 'double'
Dieser Fehler tritt auf, wenn Sie versuchen, eine Liste mit mehreren Elementen in numerische Elemente zu konvertieren, ohne zuvor die Funktion unlist() zu verwenden.
In diesem Tutorial werden die genauen Schritte erläutert, mit denen Sie diesen Fehler beheben können.
So reproduzieren Sie den Fehler
Der folgende Code versucht, eine Liste mit mehreren Elementen in numerische Werte umzuwandeln:
#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'
Da wir die Funktion unlist() nicht verwendet haben, erhielten wir die Fehlermeldung (list) kann nicht gezwungen werden, „double“ einzugeben .
So beheben Sie den Fehler
Um die Liste in eine numerische Liste umzuwandeln, müssen wir sicherstellen, dass wir die Funktion unlist() verwenden:
#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
Wir können die Funktion class() verwenden, um zu überprüfen, ob x_num tatsächlich ein Vektor numerischer Werte ist:
#verify that x_num is numeric
class(x_num)
[1] "digital"
Wir können auch überprüfen, ob die ursprüngliche Liste und die numerische Liste die gleiche Anzahl an Elementen haben:
#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
Wir sehen, dass die beiden Längen übereinstimmen.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in R beheben können:
So beheben Sie das Problem in R: Namen stimmen nicht mit vorherigen Namen überein
So korrigieren Sie in R: Kontraste können nur auf Faktoren mit 2 oder mehr Ebenen angewendet werden
So beheben Sie das Problem in R: Die Länge eines längeren Objekts ist kein Vielfaches der Länge eines kürzeren Objekts