Dati Converti da file CSV in oggetto “XTS”
-
16-10-2019 - |
Domanda
Io ho i file CSV, che ha la data nel seguente formato: 25-ago-2004
voglio leggere come un oggetto "XTS" in modo da utilizzare la funzione "periodReturn" nel pacchetto di quantmod.
Posso utilizzare il seguente file per la funzione?
Symbol Series Date Prev.Close Open.Price High.Price Low.Price
1 XXX EQ 25-Aug-2004 850.00 1198.70 1198.70 979.00
2 XXX EQ 26-Aug-2004 987.95 992.00 997.00 975.30
mi guida con la stessa.
Soluzione
Purtroppo non posso parlare per la parte ts
, ma questo è come è possibile convertire le date in un formato corretto che può essere letto da altre funzioni come le date (o tempo).
È possibile importare i dati in un data.frame come al solito ( vedere qui 've perso ). Quindi, è possibile convertire la vostra colonna Date
in una classe POSIXlt
(POSIXt
) utilizzando la funzione strptime
.
nibha <- "25-Aug-2004" # this should be your imported column
lct <- Sys.getlocale("LC_TIME"); Sys.setlocale("LC_TIME", "C") #temporarily change locale to C if you happen go get NAs
strptime(nibha, format = "%d-%b-%Y")
Sys.setlocale("LC_TIME", lct) #revert back to your locale
Altri suggerimenti
Prova questo. Ci liberiamo delle colonne fastidio e specificare il formato dell'indice tempo, poi convertire in XTS e applicare la funzione dailyReturn:
Lines <- "Symbol Series Date Prev.Close Open.Price High.Price Low.Price
1 XXX EQ 25-Aug-2004 850.00 1198.70 1198.70 979.00
2 XXX EQ 26-Aug-2004 987.95 992.00 997.00 975.30"
library(quantmod) # this also pulls in xts & zoo
z <- read.zoo(textConnection(Lines), format = "%d-%b-%Y",
colClasses = rep(c(NA, "NULL", NA), c(1, 2, 5)))
x <- as.xts(z)
dailyReturn(x)
Naturalmente, textConnection(Lines)
è solo per mantenere l'esempio autonomo e, in realtà, sarebbe stato sostituito con qualcosa di simile "myfile.dat"
.