Come risolvere l'errore r:: identificatori duplicati per le righe


Un errore che potresti riscontrare in R è:

 Error: Duplicate identifiers for rows

Questo errore si verifica quando si tenta di utilizzare la funzione spread() per distribuire i valori di una o più colonne in un frame di dati nelle rispettive colonne.

Tuttavia, può verificarsi un errore se non esiste un ID univoco per ciascuna riga, quindi non è possibile determinare quali valori appartengono a quali osservazioni durante l’esecuzione della distribuzione.

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

Esempio: come correggere l’errore

Supponiamo di avere il seguente frame di dati in R che contiene informazioni su vari giocatori di basket:

 #create data frame
df <- data. frame (player=rep(c(' A ', ' B '), each= 4 ),
                 year=rep(1:4, times= 2 ),
                 assists=c(4, 10, 4, 4, 3, 7, 7, 6),
                 dots=c(14, 6, 18, 7, 22, 9, 38, 4))

#view data frame
df

  player year assists points
1 A 1 4 14
2 A 2 10 6
3 To 3 4 18
4 To 4 4 7
5 B 1 3 22
6 B 2 7 9
7 B 3 7 38
8 B 4 6 4

Supponiamo ora di voler trasformare il data frame per avere la colonna dell’anno come colonna id e creare nuove colonne chiamate assists_A , assists_B , points_A e points_B per rappresentare gli assist e i valori in punti dei giocatori A e B nel corso di ogni anno .

Poiché i valori nella colonna dell’anno non saranno univoci (ci saranno due 1, due 2, ecc.), la funzione spread() genererà un errore.

Tuttavia, possiamo utilizzare la funzione pivot_wider() con la seguente sintassi per produrre il frame di dati desiderato:

 library (tidyr)

#spread the values in the points and assists columns
pivot_wider(data = df, 
            id_cols = year, 
            names_from = player, 
            values_from = c(' assists ', ' points '))

# A tibble: 4 x 5
   year assists_A assists_B points_A points_B
                    
1 1 4 3 14 22
2 2 10 7 6 9
3 3 4 7 18 38
4 4 4 6 7 4

Tieni presente che non riceviamo alcun errore e siamo in grado di creare con successo le nuove colonne che mostrano i valori dei punti e degli assist per i giocatori A e B in ciascuno dei quattro anni.

Risorse addizionali

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

Come risolvere in R: NA introdotte dalla coercizione
Come riparare in R: indice fuori limite
Come risolvere in R: la lunghezza di un oggetto più lungo non è un multiplo della lunghezza di un oggetto più corto
Come riparare in R: il numero di elementi da sostituire non è multiplo della lunghezza di sostituzione

Aggiungi un commento

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