R Error en read.table: no se permiten ‘row.names’ duplicados (3 ejemplos)

Se el primero en calificar

Este artículo explica cómo lidiar con el mensaje de error «No se permiten ‘nombres de fila duplicados» en la programación R.

El artículo está estructurado de la siguiente manera:

¡Vamos a sumergirnos!

Ejemplo 1: reproducción del error: no se permiten ‘row.names’ duplicados

En el Ejemplo 1, mostraré cómo replicar el mensaje de error de programación R en read.table «no se permiten ‘filas.nombres’ duplicados».

Supongamos que queremos leer el siguiente archivo CSV en RStudio:

ejemplo csv

Entonces, podríamos intentar usar la función read.csv como se muestra a continuación:

datos <- leer . csv ( "C:/Users/Joach/Desktop/my directory/my_data.csv" )            # Intentar leer el archivo 
# Error en read.table(file = file, header = header, sep = sep, quote = quote, : 
# no se permiten 'row.names' duplicados

Desafortunadamente, la función read.csv devuelve el mensaje de error «no se permiten ‘row.names’ duplicados» a la consola de RStudio.

La razón de esto es que nuestro archivo csv contiene comas (es decir,) al final de cada fila, pero el encabezado no contiene tal coma.

Por esa razón, el lenguaje de programación R asume que el primer valor de cada fila es un nombre de fila. Dado que algunos de estos valores son iguales (es decir, 1), se devuelve el mensaje de error.

En los siguientes ejemplos, explicaré diferentes formas de resolver este problema. ¡Así que sigue leyendo!

Ejemplo 2: corregir el error modificando el archivo CSV

En este ejemplo, mostraré cómo corregir el mensaje de error «no se permiten ‘filas.nombres’ duplicados» modificando manualmente el archivo CSV de entrada.

Si queremos evitar este mensaje de error, simplemente podemos eliminar la coma al final de cada fila. Nuestro archivo CSV modificado debería tener el siguiente aspecto:

ejemplo csv 2

Ahora, podemos leer este archivo CSV modificado usando la función read.csv:

datos <- leer . csv ( "C:/Users/Joach/Desktop/my directory/my_data_modified.csv" )   # Leer datos de archivo modificados 
#                                                                           Imprimir datos 
# x1 x2 x3 
# 1 1 5 2 
# 2 1 2 7 
# 3 2 5 7 
# 4 1 3 1

¡Se ve bien!

Ejemplo 3: corregir el error usando el argumento row.names

En el ejemplo anterior, mostré cómo arreglar manualmente nuestro archivo CSV para que podamos cargarlo usando read.csv. Sin embargo, dependiendo del tamaño de su archivo y de sus preferencias personales, es posible que desee resolver este problema directamente en R.

El siguiente código muestra cómo importar y manipular correctamente nuestro archivo CSV en R.

Primero, podemos evitar el mensaje de error configurando el argumento row.names para que sea igual a NULL:

datos <- leer . csv ( "C:/Usuarios/Joach/Escritorio/mi directorio/mis_datos.csv" ,            # Usar el argumento fila.nombres 
                 fila . nombres  =  NULL ) 
datos                                                                           # Imprimir datos 
# fila.nombres x1 x2 x3 
# 1 1 5 2 NA 
# 2 1 2 7 NA 
# 3 2 5 7 NA 
# 4 1 3 1 NA

Como puede ver, el código R anterior creó un marco de datos con una variable llamada row.names y una variable que contiene solo valores NA . En otras palabras: los nombres de las columnas se desplazan falsamente una vez a la derecha.

Para resolver este problema, primero tenemos que cambiar los nombres de las columnas de nuestro marco de datos…

colnames ( datos )  <- colnames ( datos ) [ 2 : ncol ( datos ) ]                                 # Modificar nombres de columnas 
data                                                                           # Imprimir datos 
# x1 x2 x3 NA 
# 1 1 5 2 NA 
# 2 1 2 7 NA 
# 3 2 5 7 NA 
# 4 1 3 1 NA

… y luego tenemos que eliminar la columna vacía que solo consta de valores faltantes:

data <- data [ , - ncol ( data ) ]                                                  # Eliminar columna vacía 
data                                                                           # Imprimir data 
# x1 x2 x3 
# 1 1 5 2 
# 2 1 2 7 
# 3 2 5 7 
# 4 1 3 1

Como puede ver, el marco de datos final se ve exactamente igual que el marco de datos que hemos importado en el Ejemplo 2. Sin embargo, si está utilizando este método, asegúrese de que sus datos estén formateados correctamente al final del proceso de manipulación de datos. . Puede suceder fácilmente que algunas variables se nombren de manera diferente a como deberían ser.

Video, recursos adicionales y resumen

¿Necesitas más información sobre el contenido de este post? Entonces puedes ver el siguiente video de mi canal de YouTube. En el video, muestro los códigos de programación R de este tutorial en una sesión en vivo.

El video de YouTube se agregará pronto.

Además, puede leer los tutoriales relacionados de mi sitio web:

En este punto, debería haber aprendido cómo resolver el error «no se permiten ‘nombres de fila’ duplicados» en el lenguaje de programación R. En caso de que tengas preguntas adicionales, no dudes en decírmelo en los comentarios.

Alejandro Lugon Administrator

Alejandro Lugón es un economista y escritor especializado en Python y R, conocido por ser el creador del blog Estadisticool. Nacido enxico, Lugón se graduó de la Universidad Autónoma dexico con una Licenciatura en Economía. Desde entonces ha trabajado como economista en varias empresas. Lugón también ha escrito varios libros sobre temas relacionados con la economía, el análisis de datos y la programación. Su blog Estadisticool se ha convertido en un lugar de referencia para los programadores de Python y R. Alejandro Lugón es una inspiración para aquellos que buscan aprender programación y análisis de datos. Su trabajo ha ayudado a muchas personas a entender mejor el uso de la tecnología para hacer sus trabajos.

Agregar a Vector en Loop en R (Ejemplo) | Agregar valor en bucles while y for Aunque parezca simple, agregar…