So beheben sie das problem in r: das argument „no“ fehlt, ohne standardeinstellung


Ein Fehler, der in R auftreten kann, ist:

 Error in ifelse(df$team == "B", "Boston"): 
  argument "no" is missing, with no default

Dieser Fehler tritt auf, wenn Sie die Funktion ifelse() in R verwenden, aber vergessen, ein drittes Argument einzufügen, um den Wert anzugeben, der zurückgegeben werden soll, wenn der Logiktest „Falsch“ zurückgibt.

In diesem Tutorial wird genau erklärt, wie Sie diesen Fehler beheben können.

So reproduzieren Sie den Fehler

Angenommen, wir haben den folgenden Datenrahmen in R:

 #create data frame
df <- data. frame (team=c('B', 'B', 'B', 'B', 'C', 'C', 'C', 'D'),
                 points=c(12, 22, 35, 34, 20, 28, 30, 18),
                 assists=c(4, 10, 11, 12, 12, 8, 6, 10))

#view data frame
df

  team points assists
1 B 12 4
2 B 22 10
3 B 35 11
4 B 34 12
5 C 20 12
6 C 28 8
7 C 30 6
8 D 18 10

Nehmen wir nun an, wir versuchen, mit der Funktion ifelse() eine neue Spalte namens city zu erstellen, die „Boston“ enthält, wenn der Wert in der Teamspalte gleich „B“ ist:

 #attempt to create new column with team city
df$city <- ifelse(df$team == ' B ', ' Boston ')

Error in ifelse(df$team == "B", "Boston"): 
  argument "no" is missing, with no default

Wir erhalten eine Fehlermeldung, weil wir der Funktion ifelse() kein drittes Argument zur Verfügung gestellt haben, das den Wert angibt, den wir zurückgeben sollen, wenn der Wert in der Teamspalte nicht gleich „B“ ist.

So beheben Sie den Fehler

Die Möglichkeit, diesen Fehler zu beheben, besteht einfach darin, der Funktion ifelse() ein drittes Argument bereitzustellen, das den Wert angibt, den wir zurückgeben sollen, wenn der Wert in der Teamspalte nicht gleich „B“ ist.

Die folgende Syntax zeigt, wie das geht:

 #create new column with team city
df$city <- ifelse(df$team == ' B ', ' Boston ', ' Other ')

#view updated data frame
df

  team points assists city
1 B 12 4 Boston
2 B 22 10 Boston
3 B 35 11 Boston
4 B 34 12 Boston
5 C 20 12 Other
6 C 28 8 Other
7 C 30 6 Other
8 D 18 10 Other

Beachten Sie, dass wir dieses Mal keine Fehlermeldungen erhalten, da wir der Funktion ifelse() ein drittes Argument bereitgestellt haben.

In diesem Beispiel gibt die Funktion ifelse() den Wert „Boston“ zurück, wenn der Wert in der Teamspalte gleich „B“ ist, oder den Wert „Andere“, wenn der Wert in der Teamspalte etwas anderes ist.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in R beheben:

So beheben Sie in R: NAs, die durch Zwang eingeführt wurden
So reparieren Sie in R: Index außerhalb der Grenzen
So beheben Sie das Problem in R: Die Länge eines längeren Objekts ist kein Vielfaches der Länge eines kürzeren Objekts
So reparieren Sie in R: Die Anzahl der zu ersetzenden Elemente ist kein Vielfaches der Ersetzungslänge

Einen Kommentar hinzufügen

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