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.

È stato utile?

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".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top