Comment faire pour accélérer rbind?

Je suis censé pour télécharger un tableau à partir de MS-SQL server.

Le nombre de ligne est de plus de 6 millions d'. Le serveur ne peut pas revenir ensemble de données à la fois.

Alors, j'ai écrit un code qui télécharge 10 000 lignes à la fois. et, il lie des lignes de la boucle.

Supposer que getData() fonction renvoie un bloc de données contient 10000 lignes à la fois. (Pseudo-Code)

for(i in 1:600)
{
    tempValue <- getData()
    wannagetValue <- rbind(wannagetValue,tempValue)
    print(i)
}

Le problème est qu'il devient plus lent que le temps passe.

Je pense que l'utilisation rbind de cette manière n'est pas une bonne idée.

Tous les conseils seront très utiles. Je vous remercie à l'avance.

Si vous connaissez la taille de votre éventuel bloc de données va être alors il sera beaucoup plus rapide à pré-allouer et remplissez les valeurs que vous allez. Bien qu'il existe probablement une solution plus rapide à l'aide de différentes structures de données que quelqu'un post.
wannagetValue <- rbind(wannagetValue,getData()); . Qui pourrait accélérer un peu votre code...mais la question principale est de savoir, pourquoi autant de données?
Merci David! Vous m'avez sauvé.. Robert // je n'ai aucune idée~~ tout ce que je sais est qu'il y a de données de plus de 500 GO taille.
Vous faire réaliser que R stocke tout dans la mémoire, à droite? Si vous avez 500 GO de données, vous aurez besoin d'au moins autant de RAM, et idéalement deux fois plus.
Ensemble de données brutes dépassent 500 GO, mais il sera de 5~10 GO totla si elle stocke sous forme de données binaires. En outre, Chaque table contient 1~2 GO. Je peux le traiter séparément. Heureusement, mon ordinateur a 64 GO de mémoire DDR3 ECC RAM. Je ne pense pas que c'est pas assez. En passant, merci pour les conseils.

OriginalL'auteur Keith Park | 2013-10-31