"noms" de l'attribut doit être de la même longueur que le vecteur

Collé sur une erreur dans l'arrêt R.

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

que signifie cette erreur?

10
r
demandé sur Sheila 2012-05-12 22:49:37

4 réponses

dans l'esprit de @Chris W, essayez juste de répliquer l'erreur exacte que vous obtenez. Un exemple aurait pu aider, mais peut-être que vous le faites:

  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]

je soupçonne que vous essayez de donner des noms à un vecteur ( x ) qui est plus court que votre vecteur de noms ( y ).

11
répondu user1317221_G 2018-02-21 18:28:11

selon ce que vous faites dans la boucle, le fait que l'opérateur %in% renvoie un vecteur pourrait être un problème; prenons un exemple simple:

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

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

l'avertissement suivant est alors émis:

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

si quelque chose dans votre instruction if dépend d'un nombre spécifique d'éléments, et qu'ils ne correspondent pas, alors il est possible d'obtenir l'erreur que vous voyez

1
répondu ChrisW 2012-05-12 19:19:05

j'ai vu cette erreur et je l'ai résolu. Vous pouvez avoir des valeurs manquantes dans votre jeu de données. Nombre d'observations dans chaque colonne doit également être le même.

0
répondu user6112122 2016-03-25 01:12:22

l'erreur que j'ai faite qui a forcé cette erreur était d'essayer de renommer une colonne dans une boucle que je ne sélectionnais plus dans mon SQL. Cela pourrait également être causé en essayant de faire la même chose dans une colonne que vous étiez planification à sélectionner. Assurez-vous que la colonne que vous essayez de changer existe réellement.

0
répondu H5470 2017-08-31 16:01:46