Hoe te repareren in r: vervanging heeft x-rijen, gegevens hebben y


Een foutmelding die u kunt tegenkomen bij het gebruik van R is:

 Error in `$<-.data.frame`(`*tmp*`, conf_full, value = c("West", "West",: 
  replacement has 3 rows, data has 5

Deze fout treedt op wanneer u probeert een nieuwe kolom toe te voegen aan een dataframe waarvan de waarden zijn gebaseerd op een bestaande kolom, maar u niet eerst de nieuwe kolom kunt maken.

Het volgende voorbeeld laat zien hoe u deze fout in de praktijk kunt oplossen.

Hoe de fout te reproduceren

Stel dat we het volgende dataframe in R creëren:

 #create data frame
df <- data. frame (conference=c('W', 'W', 'W', 'E', 'E'),
                 points=c(99, 90, 86, 88, 95),
                 assists=c(33, 28, 31, 39, 34))	

#view data frame
df

  conference points assists
1 W 99 33
2 W 90 28
3 W 86 31
4 E 88 39
5 E 95 34

Stel nu dat we proberen een nieuwe kolom toe te voegen aan het dataframe met de naam conf_full :

 #attempt to create new column based on conference name
df$conf_full[which(df$conference==' W ')] <- ' West '
df$conf_full[which(df$conference==' E ')] <- ' East '

Error in `$<-.data.frame`(`*tmp*`, conf_full, value = c("West", "West",: 
  replacement has 3 rows, data has 5

We krijgen een foutmelding omdat de variabelenaam conf_full nog niet bestaat, wat betekent dat we nog geen waarden aan deze kolom kunnen toekennen.

Hoe u de fout kunt vermijden

Om deze fout te voorkomen, kunnen we eerst de conf_full variabele maken en deze eenvoudigweg de waarden van NA toewijzen:

 #create conf_full variable
df$conf_full <- NA

Nu de variabele bestaat, kunnen we er waarden aan toekennen:

 #create new column based on conference
df$conf_full[which(df$conference==' W ')] <- ' West '
df$conf_full[which(df$conference==' E ')] <- ' East '

#view updated data frame
df

  conference points assists conf_full
1 W 99 33 West
2 W 90 28 West
3 W 86 31 West
4 E 88 39 East
5 E 95 34 East

Houd er rekening mee dat we deze keer geen fouten ontvangen omdat we eerst de variabele conf_full hebben gemaakt voordat we probeerden er waarden aan toe te wijzen.

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

Einen Kommentar hinzufügen

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