Calculez la différence de deux séries chronologiques XTS lorsque les valeurs sont à des moments différents
-
29-10-2019 - |
Question
J'ai deux séries chronologiques XT dans R et je veux calculer les différences entre les valeurs des séries chronologiques aux temps les plus proches les uns des autres. Autrement dit, si mes deux indices sont:
[1] (10/10/05 13:00:00) (10/10/05 14:00:00) (10/10/05 14:23:00)
et
[1] (10/10/05 12:38:00) (10/10/05 12:53:00) (10/10/05 12:59:00) (10/10/05 13:08:00) (10/10/05 13:23:00)
[6] (10/10/05 13:38:00) (10/10/05 13:53:00) (10/10/05 14:23:00) (10/10/05 15:05:00) (10/10/05 15:11:00)
Je veux calculer les différences des valeurs à:
- 13h00 et 12h59
- 14:00 et 13:53
- 14:30 et 14:23
Comment dois-je faire cela? Le standard merge
méthode de zoo
avec all=FALSE
Je ne ferai pas ce que je veux, car les indices doivent être exactement égaux pour qu'il fusionne correctement.
Des idées?
La solution
Vous n'avez pas fourni d'exemple reproductible, donc je ne peux pas vous donner de solution spécifique. Généralement, vous pouvez utiliser align.time
Pour modifier les valeurs d'index de chaque objet en une périodicité similaire, ou vous pourriez fusionner et utiliser na.locf
pour remplir les valeurs manquantes. Ensuite, vous pouvez faire les opérations que vous souhaitez entre les deux séries.
Autres conseils
Je pense à quelque chose comme ceci: pour chaque membre de la première série, vous l'insérez dans la deuxième série en fonction de son index de temps, puis calculez les différences absolues entre les indices du membre inséré de la première série et celui des précédents et des suites Deuxième membres de la série, prenant la différence correspondante entre les valeurs pour lesquelles la différence absolue entre les indices est la plus petite.