2012-05-12 5 views
6

Pegado a un error en R.debe ser la misma longitud que el vector

Error in names(x) <- value : 
     'names' attribute must be the same length as the vector 

¿Qué significa este error?

+2

¿Puede proporcionar un ejemplo reproducible mínimo? – Dason

+2

Sí, y sospecho fuertemente que ha identificado la línea incorrecta ... ¡Se necesita más contexto! Intente escribir 'traceback()' después de que ocurra el error. – Tommy

+1

¿Has verificado esta discusión: http://stackoverflow.com/questions/14153092/meaning-of-ddply-error-names-attribute-9-must-be-the-same-length-as-the-vec –

Respuesta

0

Dependiendo de lo que esté haciendo en el ciclo, el hecho de que el operador %in% devuelva un vector podría ser un problema; considerar un ejemplo sencillo:

c1 <- c("one","two","three","more","more") 
c2 <- c("seven","five","three") 

if(c1%in%c2) { 
    print("hello") 
} 

entonces el siguiente aviso se emite:

Warning message: 
In if (c1 %in% c2) { : 
    the condition has length > 1 and only the first element will be used 

si algo en su sentencia if depende de un número determinado de elementos, y ellos no coinciden, entonces es posible obtener el error que ve

9

En el espíritu de @Chris W, simplemente intente replicar el error exacto que está obteniendo. Un ejemplo podría haber ayudado, pero tal vez lo está haciendo:

x <- c(1,2) 
    y <- c("a","b","c") 
    names(x) <- y 

Error in names(x) <- y : 
    'names' attribute [3] must be the same length as the vector [2] 

Sospecho que estamos tratando de poner nombres a un vector (x) que es más corto que su vector de nombres (y).

-1

He visto ese error y lo he resuelto. Es posible que tenga valores perdidos en su conjunto de datos. El número de observaciones en cada columna también debe ser el mismo.

0

El error que cometí que forzó este error fue intentar cambiar el nombre de una columna en un bucle que ya no estaba seleccionando en mi SQL. Esto también podría deberse a que intenta hacer lo mismo en una columna que estaba planificando para seleccionar. Asegúrese de que la columna que está intentando cambiar realmente exista.

Cuestiones relacionadas