Come risolvere il problema in r: i duplicati di "row.names" non sono consentiti


Un errore che potresti riscontrare in R è:

 Error in read.table(file = file, header = header, sep = sep, quote = quote, : 
  duplicate 'row.names' are not allowed 

Questo errore si verifica in genere quando si tenta di leggere un file CSV in R che contiene virgole alla fine di ogni riga del file tranne la riga di intestazione.

Questo tutorial spiega esattamente come correggere questo errore.

Come riprodurre l’errore

Supponiamo di avere il seguente file CSV chiamato my_data.csv :

Tieni presente che ci sono delle virgole alla fine di ogni riga del file tranne la riga di intestazione.

Supponiamo ora di provare a importare questo file in R:

 #attempt to import CSV into data frame
df <- read. csv (' my_data.csv ')

Error in read.table(file = file, header = header, sep = sep, quote = quote, : 
  duplicate 'row.names' are not allowed

Riceviamo un errore perché ci sono virgole alla fine di ogni riga del file tranne la riga di intestazione, portando R a pensare che la prima colonna di valori siano i nomi delle righe.

Poiché due righe hanno lo stesso valore seed (4), R ritiene che esistano nomi di righe duplicati.

Come correggere l’errore

Il modo per correggere questo errore è semplicemente utilizzare row.names=NULL durante l’importazione del file:

 #import CSV file into data frame
df <- read. csv (' my_data.csv ', row.names =NULL)

#view data frame
df

  row.names column1 column2 column3
1 4 5 7 NA
2 4 2 1 NA
3 7 9 0 NA

Siamo in grado di importare correttamente il file CSV, ma i nomi delle colonne sono errati.

Per risolvere questo problema, possiamo modificare i nomi delle colonne e quindi eliminare l’ultima colonna:

 #modify column names
colnames(df) <- colnames(df)[2: ncol (df)]

#drop last column
df <- df[1:( ncol (df)-1)]

#view updated data frame
df

  column1 column2 column3
1 4 5 7
2 4 2 1
3 7 9 0

Il frame di dati è ora nel formato corretto.

Correlati: come utilizzare la funzione ncol in R

Risorse addizionali

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

Come risolvere il problema in R: i nomi non corrispondono ai nomi precedenti
Come risolvere in R: la lunghezza di un oggetto più lungo non è un multiplo della lunghezza di un oggetto più corto
Come risolvere in R: i contrasti possono essere applicati solo a fattori con 2 o più livelli

Aggiungi un commento

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