Hoe op te lossen in r: argument “nee” ontbreekt, zonder standaard


Een fout die je tegen kunt komen in R is:

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

Deze fout treedt op wanneer u de functie ifelse() in R gebruikt, maar vergeet een derde argument op te nemen om de waarde op te geven die moet worden geretourneerd als de logische test false retourneert.

In deze tutorial wordt precies uitgelegd hoe u deze fout kunt oplossen.

Hoe de fout te reproduceren

Stel dat we het volgende dataframe in R hebben:

 #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

Stel nu dat we de functie ifelse() proberen te gebruiken om een nieuwe kolom te maken met de naam stad die ‚Boston‘ bevat als de waarde in de teamkolom gelijk is aan ‚B‘:

 #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

We ontvangen een foutmelding omdat we er niet in zijn geslaagd een derde argument op te geven voor de functie ifelse() die de waarde specificeert die we moeten retourneren als de waarde in de teamkolom niet gelijk is aan ‚B‘.

Hoe u de fout kunt oplossen

De manier om deze fout op te lossen is door eenvoudigweg een derde argument aan de ifelse()- functie toe te voegen, die de waarde specificeert die we moeten retourneren als de waarde in de teamkolom niet gelijk is aan ‚B‘.

De volgende syntaxis laat zien hoe u dit doet:

 #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

Merk op dat we deze keer geen fouten ontvangen, omdat we een derde argument hebben opgegeven voor de functie ifelse() .

In dit voorbeeld retourneert de functie ifelse() de waarde „Boston“ als de waarde in de teamkolom gelijk is aan „B“ of de waarde „Other“ als de waarde in de teamkolom iets anders is.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in R kunt oplossen:

Hoe op te lossen in R: NA’s geïntroduceerd door dwang
Hoe te repareren in R: index buiten bereik
Hoe op te lossen in R: de lengte van een langer object is geen veelvoud van de lengte van een korter object
Hoe te repareren in R: het aantal te vervangen elementen is geen veelvoud van de vervangingslengte

Einen Kommentar hinzufügen

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