R - données du marché boursier de csv à XTS
-
27-10-2019 - |
Question
J'ai ces données dans un fichier CSV:
Date ALICORC1 ALT ATACOBC1 AUSTRAC1 CONTINC1 BVN DNT
40886 5.8 0.1 0.9 0.28 5.45 38.2 1.11
40889 5.8 0.1 0.88 0.28 5.37 37.7 1.04
40890 5.8 0.09 0.87 0.27 5.33 37.4 0.99
40891 5.7 0.1 0.85 0.27 5.3 37.5 0.91
Ce sont des cours de clôture des actions de la Bourse du Pérou, et je veux les convertir en XTS afin que je puisse trouver le portefeuille optimal et d'autres choses, mais je ne peux pas trouver le moyen de convertir ce fichier CSV à XTS. J'ai vérifié la réponse à plusieurs des questions ici, mais aucun d'entre eux travaillaient.
Certaines des erreurs que j'ai sont:
- Index a des entrées de mauvaises XXXX à des lignes de données
- données Ambigu.
Aide Quelqu'un peut-il me?
La solution
csv signifie virgule -Séparé valeurs de sorte que la mise en page montre la question n'est pas csv. Nous partons du principe que les données sont vraiment sous forme csv et non sous la forme présentée à la question. Si elle est vraiment sous la forme indiquée dans la question plutôt que csv puis omettre l'argument sep=","
dans read.zoo
ci-dessous. De plus, s'il y a d'autres écarts, vous devrez peut-être modifier les autres arguments. Voir ?read.zoo
et la lecture de données dans la vignette du zoo dans le package zoo .
Ici, nous utilisons read.zoo
dans le package zoo pour lire les données comme un objet zoo, z
, puis nous le convertissons en XTS, x
.
Voir R Nouvelles 4/1 qui traite de la date spécifiquement la manipulation des dates Excel noter que nous devrons peut-être modifier le code ci-dessous légèrement si la version Mac d'Excel est utilisé (comme il est décrit dans la référence).
library(xts) # this also loads zoo which has read.zoo
toDate <- function(x) as.Date(x, origin = "1899-12-30")
z <- read.zoo("myfile.csv", header = TRUE, sep = ",", FUN = toDate)
x <- as.xts(z)