Domanda

Ho questi dati in un 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

Questi sono i prezzi di chiusura delle azioni del mercato azionario peruviano e desidero convertirli in xts in modo da poter trovare il portafoglio ottimale e altre cose, ma non riesco a trovare il modo di convertire questo CSV in xts.Ho controllato la risposta a molte delle domande qui, ma nessuna ha funzionato.

Alcuni degli errori che ho riscontrato sono:

  • L'indice contiene XXXX voci errate nelle righe di dati
  • Dati ambigui.

Qualcuno può aiutarmi?

È stato utile?

Soluzione

csv sta per virgola-valori-separati quindi il layout mostrato nella domanda non è CSV.Daremo per scontato che i dati siano realmente in formato CSV e non nel formato mostrato nella domanda.Se è veramente nella forma mostrata nella domanda anziché in CSV, ometti il ​​file sep="," argomento in read.zoo sotto.Inoltre, se ci sono altre deviazioni, potrebbe essere necessario modificare ulteriormente gli argomenti.Vedere ?read.zoo e il Lettura dei dati nello zoo vignetta nel pacchetto dello zoo.

Qui usiamo read.zoo nel pacchetto zoo per leggere i dati come oggetto zoo, z, e poi lo convertiamo in xts, x.

Vedere R Notizie 4/1 che tratta specificamente la gestione delle date di Excel notando che potrebbe essere necessario modificare leggermente il codice seguente se viene utilizzata la versione Mac di Excel (come descritto nel riferimento).

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)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top