Come riparare in r: la sostituzione ha x righe, i dati hanno y


Un messaggio di errore che potresti riscontrare quando usi R è:

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

Questo errore si verifica quando si tenta di aggiungere una nuova colonna a un frame di dati i cui valori sono basati su una colonna esistente, ma non si riesce prima a creare la nuova colonna.

L’esempio seguente mostra come risolvere questo errore nella pratica.

Come riprodurre l’errore

Supponiamo di creare il seguente frame di dati in R:

 #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

Supponiamo ora di provare ad aggiungere una nuova colonna al frame di dati chiamata 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

Riceviamo un errore perché il nome della variabile conf_full non esiste ancora, il che significa che non possiamo ancora assegnare valori a questa colonna.

Come evitare l’errore

Per evitare questo errore possiamo prima creare la variabile conf_full e assegnarle semplicemente i valori di NA:

 #create conf_full variable
df$conf_full <- NA

Ora che la variabile esiste, possiamo assegnarle dei valori:

 #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

Tieni presente che questa volta non riceviamo alcun errore perché abbiamo creato la variabile conf_full prima di tentare di assegnarle dei valori.

Risorse addizionali

I seguenti tutorial spiegano come correggere altri errori comuni in R:

Come risolvere in R: gli argomenti coinvolgono un numero diverso di righe
Come risolvere in R: errore nella selezione di argomenti inutilizzati
Come riparare in R: la sostituzione ha lunghezza zero

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *