So reparieren sie in r: fehler in sort.int(x, na.last, descending, …): „x“ muss atomar sein


Eine Fehlermeldung, die bei der Verwendung von R auftreten kann, ist:

 Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...): 
  'x' must be atomic

Dieser Fehler tritt auf, wenn Sie versuchen, eine Liste zu sortieren.

Standardmäßig ist R nur in der Lage, atomare Objekte wie Vektoren zu sortieren. Um sort() mit einer Liste zu verwenden, müssen Sie also zuerst die Funktion unlist() verwenden.

Das folgende Beispiel zeigt, wie dieser Fehler in der Praxis behoben werden kann.

So reproduzieren Sie den Fehler

Angenommen, wir haben die folgende Liste in R:

 #create list
some_list <- list(c(4, 3, 7), 2, c(5, 12, 19)) 

#view list
some_list

[[1]]
[1] 4 3 7

[[2]]
[1] 2

[[3]]
[1] 5 12 19

#view class
class(some_list)

[1] "list"

Nehmen wir nun an, wir versuchen, die Werte in der Liste zu sortieren:

 #attempt to sort the values in the list
sort(some_list)

Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...): 
  'x' must be atomic

Wir erhalten eine Fehlermeldung, da R nicht in der Lage ist, Listen direkt zu sortieren.

So vermeiden Sie den Fehler

Um den Fehler zu vermeiden, müssen Sie zunächst die Funktion unlist() wie folgt verwenden:

 #sort values in list
sort(unlist(some_list))

[1] 2 3 4 5 7 12 19

Beachten Sie, dass wir die Werteliste erfolgreich und ohne Fehler sortieren können, da wir zuerst unlist() verwendet haben, wodurch die Liste in einen numerischen Vektor konvertiert wurde.

Standardmäßig sortiert R Werte in aufsteigender Reihenfolge.

Wir können jedoch diminishing=TRUE verwenden, um die Werte in absteigender Reihenfolge zu sortieren:

 #sort values in list in descending order
sort(unlist(some_list), decreasing= TRUE )

[1] 19 12 7 5 4 3 2

Beachten Sie, dass die Werte jetzt in absteigender Reihenfolge sortiert sind.

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: Argumente umfassen eine unterschiedliche Anzahl von Zeilen
So beheben Sie in R: Fehler bei der Auswahl nicht verwendeter Argumente
So beheben Sie in R: ungültige Argumente
So reparieren Sie in R: Der Ersatz hat die Länge Null

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert