es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo conseguir nombres de filas únicos en UNA columna?

Tengo un gran dataframe llamado ‘data’, consideremos esto:

data <- data.frame(DATE = c(2012, 2012, 2013, 2014, 2014, 2015),
NAME = c("A", "G", "N", "L", 'L' "L"),
LCR = c(1, 3, 5, 4, 5, 1),
MWFR=c(0,0,0,0,0,0,1,1),
reg=c(1,1,0,0,1,1,1,1))

y quiero hacer una regresión pero cuando la ejecuto obtengo este error:

`pdata <- pdata.frame(data, index = c(“NAME”, “DATE”))
regmodelfix <- plm(LCR ~ MWFR+reg+ MWFR*reg , model =’within’,data=pdata, effect = ‘twoways’)

error: no se permiten ‘row.names’ duplicados
Además: Mensaje de advertencia:
valores no únicos cuando se establecen`

Me di cuenta de que necesito hacer un nombre único en cada fila de las columnas NAME y DATE, así que intenté hacer make.names pero no funciona. ¿Alguna idea?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el problema se debe a valores duplicados en la columna de índice. Puede intentar agregar una columna de identificación única al marco de datos antes de convertirlo en un pdata.frame. Aquí hay un ejemplo de código:

    biblioteca(plm)
    
    # Datos de ejemplo
    datos <- data.frame(FECHA = c(2012, 2012, 2013, 2014, 2014, 2015),
                        NOMBRE = c("A", "G", "N", "L", "L", "L"),
                        LCR = c(1, 3, 5, 4, 5, 1),
                        MWFR = c(0, 0, 0, 0, 0, 0),
                        reg = c(1, 1, 0, 0, 1, 1))
    
    # Agregar una columna de identificación única
    datos$ID <- paste(datos$FECHA, datos$NOMBRE, sep = "")
    
    # Convertir a pdata.frame
    pdata <- pdata.frame(datos, index = c("ID", "FECHA"))
    
    # Ejecutar la regresión
    regmodelfij <- plm(LCR ~ MWFR + reg + MWFR * reg, modelo = 'dentro', datos = pdata, efecto = 'dosvias')
    

    Esto debería crear una columna de identificación única llamada “ID” mediante la combinación de las columnas “FECHA” y “NOMBRE”. La función pdata.frame debe utilizar esta identificación única como índice, evitando así el error de “nombres de fila duplicados”.

Comments are closed.