web-dev-qa-db-fra.com

erreur rbind: "les noms ne correspondent pas aux noms précédents"

Dans le cadre d'un problème plus important (ajout d'un argument ,makeUniqueIDs à rbind.SpatialPolygonsDataFrame pour les situations dans lesquelles les identifiants de polygones sont identiques), je rencontre ce message étrange de rbind:

> do.call("rbind",xd.small)
Error in match.names(clabs, names(xi)) : 
  names do not match previous names

La seule autre information que je pouvais trouver à ce sujet était cette question , ce qui me porte à penser que rbind était également à l’origine du problème.

Je peux bien sûr écrire ma propre fonction semblable à rbind, mais on peut supposer que cette vérification match.names a lieu pour une raison, et je suis curieux de savoir en quoi elle consiste.

45
Ari B. Friedman

Les noms du premier cadre de données ne correspondent pas aux noms du second. Tout comme le message d'erreur dit.

> identical(names(xd.small[[1]]), names(xd.small[[2]]) )
[1] FALSE

Si vous ne vous souciez pas des noms des 3ème ou 4ème colonnes de la deuxième df, vous pouvez les contraindre à être identiques:

> names(xd.small[[1]]) <- names(xd.small[[2]]) 
> identical(names(xd.small[[1]]), names(xd.small[[2]]) )
[1] TRUE

Alors, les choses devraient se dérouler avec bonheur.

64
42-

assez facile à utiliser la fonction unname():

data.frame <- unname(data.frame)
38
Dr Nick Engerer

rbind() a besoin que les deux noms d'objet soient identiques. Par exemple, les premiers noms d'objet: ID Age, les prochains noms d'objet: ID Gender, si vous souhaitez utiliser rbind(), il affichera:

les noms ne correspondent pas aux noms précédents

3
J Recaido

Utilisez le code comme suit:

mylist <- lapply(pressure, function(i)read.xlsx(i,colNames = FALSE))#
mydata <- do.call('rbind',mylist)#
2
user8412546

vérifiez tous les noms de variables dans les deux fichiers combinés. Le nom des variables des deux fichiers à combiner doit être exactement identique, sinon les erreurs susmentionnées seront générées. Je faisais également face au même problème et, après avoir fait tous les noms identiques dans les deux fichiers, rbind fonctionne correctement.

Merci

0
Ankush Bhatia