J'ai une liste de Cependant, cela semble manquer de mémoire. Pour être clair: XTS code> d'objets qui sont mutuellement exclusives. Je souhaite
Fusionner CODE> la liste dans un objet code> XTS code>. Ma tentative de faire cela était de "
reg_1_min_prices code> est de 6 000 jours de retour de 1 minute sur des jours mutuellement exclusifs, donc ce n'est pas très gros. Est-ce que quelqu'un sait comment se déplacer cela? p>
reg_1_min_prices code> contient des jours mutuellement exclusifs avec des prix de 1 minute tous les jours et chaque entrée de la liste est une
xts code> objet. p> p>
3 Réponses :
Voici comment faire cela efficacement: convertir chaque objet xts code> à un
data.frame code> et simplement
rbind code>. Cela ne soulève pas l'utilisation de la mémoire presque du tout. Si nécessaire, créez simplement un nouvel objet code> xts code> à partir du
data.frame code> p>
Je ne pense pas que do.call.rbind code> utilise beaucoup de mémoire non plus, et il s'agit d'une magnitude plus rapide pour les données que j'ai testées (ne comprenant même pas le temps nécessaire pour revenir à
XTS code >).
Ok cool, laissez-moi lui donner un coup. Vous savez-vous de savoir ce qu'il s'agit de la rbind normale qui la vis est tout-dessus?
Non, mais je parie @joshuauaulrich. Si je me rappelle correctement, Jeff dispose d'un code non engagé pour le faire beaucoup plus efficacement.
J'utilise la stratégie fournie par Dominik dans Sa réponse à Cette question
Je l'ai transformé en un fonction dans mon package QMAO . Ce code est également au cœur de getymboles.fi dans le Forfait FinancialInStrument . P> si vous souhaitez autant que je puisse dire (sans avoir l'air de très près) la mémoire n'est pas un problème avec aucune des trois solutions proposées ( @ Joshuauaulrich's , @'s Alex's et QMAO :: do.call. rbind). Donc, cela revient à la vitesse ... p> rbind code>
data.frames code>, @joshuauaulrich a fourni une solution élégante ici < / a> p>
do.call.rbind code> gagne clairement à la vitesse. P> p>
Vous ne souhaitez pas utiliser Nous sommes au courant de la mémoire Problème causé par appelant Fusionner code> car cela rendrait un objet de 6 000 colonnes avec une ligne pour chaque ligne de chaque élément de liste (2 880 000 dans mon exemple). Et la plupart des valeurs seront
na code>.
cbind.xts code> appelle simplement
fusion.xts code> avec quelques valeurs d'argument par défaut, vous ne voulez donc pas l'utiliser non plus.
rbind.xts code> via
do.call code>. Jeff a un code plus efficace, mais c'est un prototype qui n'est pas public. P>
super! Qu'est-ce qui est réduit? Je n'arrive pas à trouver un réf.
@ALEX: C'est une fonction dans le paquet de base. Voir ? Réduire code>.
+1 pour expliquer pourquoi cbind code> n'était pas ce que l'OP cherchait.
Est
reg_1_min_prices code> une liste de 6 000 objets XTS, où chaque élément de liste est une donnée de 1 minute pour une seule journée?
Oui. Toutes mes excuses, laissez-moi ajouter cela à la question
Êtes-vous sûr que votre veuve
cbind code> au lieu de
rbind code>? Si vous souhaitez
RBind code> les données, Cette fonction peut aider
J'ai essayé
fusionné code>,
rbind code> et
cbind code>. Tous échaissent malheureusement et gèrent l'utilisation de la mémoire d'Aourn 4 Gigs à environ 60 gigs.
La fonction que j'ai référencée ci-dessus est utilisée dans
FinancialInStrument ::: getymboles.fi code> qui fonctionne bien pour charger et fusionner de nombreux jours de données haute fréquence.
Intéressant: j'ai fait la même chose juste dans un
pour code> car j'ai pensé qu'il utiliserait moins de mémoire, mais il a toujours augmenté rapidement. Je vais donner votre fonction un coup. Cela pourrait être un problème plus systémique, car mes données sont assez petites?