Cela devrait être assez simple pour les programmeurs R vétérans mais je n'arrive pas à trouver une solution en ligne.Erreur avec cbind sur deux objets xts
J'essaye de lier une colonne d'un objet xts sym.rank
à la fin d'un deuxième objet existant A
mais les résultats augmentent le nombre de rangées. Les données de sym.rank
sont essentiellement décalées vers le bas au lieu d'être correctement alignées sur les données de A
.
> str(A)
An ‘xts’ object on 2005-01-31/2012-12-31 containing:
Data: num [1:96, 1:6] 35.5 33.8 33.6 33.3 31.9 ...
-attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:6] "XLY.Open" "XLY.High" "XLY.Low" "XLY.Close" ...
Indexed by objects of class: [Date] TZ: UTC
xts Attributes:
List of 2
$ src : chr "yahoo"
$ updated: POSIXct[1:1], format: "2017-01-27 00:42:13"
> str(sym.rank)
An ‘xts’ object on 2005-01-31/2012-12-31 containing:
Data: num [1:96, 1:5] NA NA 5 5 4 2 2 3 5 5 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr
[1:5] "XLY.Adjusted" "XLP.Adjusted" "XLE.Adjusted" "AGG.Adjusted" ...
Indexed by objects of class: [POSIXct,POSIXt] TZ:
xts Attributes:
NULL
>sym.rank
XLY.Adjusted XLP.Adjusted XLE.Adjusted AGG.Adjusted IVV.Adjusted
2005-01-31 NA NA NA NA NA
2005-02-28 NA NA NA NA NA
2005-03-31 5 3 1 4 2
2005-04-30 5 2 4 1 3
2005-05-31 4 3 5 1 2
2005-06-30 2 5 1 4 3
> A
XLY.Open XLY.High XLY.Low XLY.Close XLY.Volume XLY.Adjusted
2005-01-31 35.45 35.55 33.23 33.78 5464600 28.49650
2005-02-28 33.82 34.36 33.33 33.60 5813500 28.34465
2005-03-31 33.60 34.40 32.71 33.16 10675600 28.01342
2005-04-30 33.30 33.47 30.62 31.05 12504000 26.23090
2005-05-31 31.92 33.18 31.04 32.0 27.85291
2005-06-30 33.10 33.88 32.68 32.78 7248700 27.73284
> cbind(A,sym.rank[,1])
XLY.Open XLY.High XLY.Low XLY.Close XLY.Volume XLY.Adjusted XLY.Adjusted.1
2005-01-30 NA NA NA NA NA NA NA
2005-01-31 35.45 35.55 33.23 33.78 5464600 28.49650 NA
2005-02-27 NA NA NA NA NA NA NA
2005-02-28 33.82 34.36 33.33 33.60 5813500 28.34465 NA
2005-03-30 NA NA NA NA NA NA 5
2005-03-31 33.60 34.40 32.71 33.16 10675600 28.01342 NA
Comme vous pouvez le voir, le résultat de la commande cbind
introduit des lignes non désirées et les valeurs réelles de sym.rank
sont introduit dans les lignes indésirables. Toute aide serait grandement appréciée. Notez la partie "Indexé par des objets ..." de la sortie str()
.
mon mauvais, trouvé la solution. Ajout de ce qui suit résout le problème: ttz <-Sys.getenv ('TZ') Sys.setenv (TZ = 'UTC') Mais si quelqu'un sait pourquoi, encore ici pour écouter la sagesse – Hysterio
Si vous ne le faites pas fournir un attribut tz vous obtenez votre fuseau horaire actuel. –
Merci beaucoup! – Hysterio