Hoe op te lossen in r: argument heeft een lengte van nul
Een foutmelding die u kunt tegenkomen bij het gebruik van R is:
Error in if (x < 10) {: argument is of length zero
Deze fout treedt meestal op wanneer u probeert een logische vergelijking uit te voeren in een if-instructie in R, maar de variabele die u in de vergelijking gebruikt, heeft een lengte nul.
Twee voorbeelden van variabelen met lengte nul zijn numeriek() of Character(0) .
Het volgende voorbeeld laat zien hoe u deze fout in de praktijk kunt oplossen.
Hoe de fout te reproduceren
Stel dat we de volgende numerieke variabele in R creëren met een lengte nul:
#create numeric variable with length of zero
x <- numeric()
Stel nu dat we deze variabele proberen te gebruiken in een if-instructie:
#if x is less than 10, print x to console
if(x < 10 ) {
x
}
Error in if (x < 10) {: argument is of length zero
We ontvangen een foutmelding omdat de variabele die we definiëren een lengte van nul heeft.
Als we eenvoudigweg een numerieke variabele met een reële waarde zouden maken, zouden we deze foutmelding nooit ontvangen bij het gebruik van de if-instructie:
#create numeric variable
y <- 5
#if y is less than 10, print y to console
if(y < 10 ) {
y
}
[1] 5
Hoe u de fout kunt vermijden
Om de fout in de argumentlengte nul te voorkomen, moeten we een isTRUE- functie opnemen, die de volgende logica gebruikt:
is. logical (x) && length(x) == 1 && !is. na (x) && x
Als we deze functie gebruiken in de if-instructie, krijgen we geen foutmelding bij het vergelijken van onze variabele met een waarde:
if(isTRUE(x) && x < 10 ) {
x
}
In plaats van een foutmelding te ontvangen, ontvangen we eenvoudigweg geen uitvoer omdat de functie isTRUE(x) evalueert naar FALSE , wat betekent dat de waarde van x nooit wordt afgedrukt.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in R kunt oplossen:
Hoe op te lossen in R: argumenten hebben betrekking op een verschillend aantal regels
Hoe op te lossen in R: fout bij het selecteren van ongebruikte argumenten
Hoe te repareren in R: vervanging heeft een lengte van nul