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.
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.
assez facile à utiliser la fonction unname()
:
data.frame <- unname(data.frame)
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
Utilisez le code comme suit:
mylist <- lapply(pressure, function(i)read.xlsx(i,colNames = FALSE))#
mydata <- do.call('rbind',mylist)#
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