Le code suivant combine un vecteur avec un dataframe:
newrow = c(1:4)
existingDF = rbind(existingDF,newrow)
Cependant, ce code insère toujours la nouvelle ligne à la fin du dataframe.
Comment puis-je insérer la ligne à un point spécifié dans la trame de données? Par exemple, disons que le dataframe a 20 lignes, comment puis-je insérer la nouvelle ligne entre les lignes 10 et 11?
existingDF = rbind(existingDF[1:10,],newrow,existingDF[-(1:10),])
newdataframe[nrow(newdataframe)+1,] <- existingdataframe[i,]
Réponses:
Voici une solution qui évite l'
rbind
appel (souvent lent) :Si la vitesse est moins importante que la clarté, alors la solution de @ Simon fonctionne bien:
(Notez que nous indexons
r
différemment).Et enfin, des benchmarks:
Benchmarks
Comme @MatthewDowle me le fait toujours remarquer, des repères doivent être examinés pour la mise à l'échelle à mesure que la taille du problème augmente. On y va alors:
La solution de @ Roland évolue assez bien, même avec l'appel à
rbind
:Tracé sur une échelle linéaire:
Et une échelle log-log:
la source
df
avec des colonnesa,b,c,d
et je veux ajouter la ligne1,2,3,4
. Comment je fais ça?la source
rbind
, mais je suis intrigué.Vous devriez essayer le package dplyr
Production
Contrairement à l'utilisation de la fonction rbind
Production
Il y a un gain de performance.
la source
par exemple, vous voulez ajouter des lignes de la variable 2 à la variable 1 d'une donnée nommée "bords", faites-le comme ceci
la source