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