Tengo un archivo csv en el que tengo 2 precios de cierre de las acciones(a diario)

Dates   Bajaj_close Hero_close
3/14/2013   1854.8  1669.1
3/15/2013   1850.3  1684.45
3/18/2013   1812.1  1690.5
3/19/2013   1835.9  1645.6
3/20/2013   1840    1651.15
3/21/2013   1755.3  1623.3
3/22/2013   1820.65 1659.6
3/25/2013   1802.5  1617.7
3/26/2013   1801.25 1571.85
3/28/2013   1799.55 1542

Quiero convertir datos en series de tiempo de formato. (la fecha de inicio es 3/14/2013
y la fecha de finalización se 3/13/2015) he probado esto, pero su darme alguna extraña salida

values <- bajaj_hero[, -1]  (excluded first column i.e date in real dataset)
bajaj_hero_timeseries <- ts(values,start=c(2013,1),end=c(2015,3),frequency=365)

La salida es:

           Bajaj_close Hero_close
2013.000     1854.80    1669.10
2013.003     1850.30    1684.45
2013.005     1812.10    1690.50
2013.008     1835.90    1645.60
2013.011     1840.00    1651.15
2013.014     1755.30    1623.30
2013.016     1820.65    1659.60
2013.019     1802.50    1617.70
2013.022     1801.25    1571.85

por favor ayuda.. 🙂

OriginalEl autor Neil | 2015-03-14

4 Comentarios

  1. 16

    R tiene múltiples formas de represeting de series de tiempo. Puesto que usted está trabajando con los precios diarios de las acciones, usted puede desear considerar que los mercados financieros están cerrados los fines de semana de negocios y de vacaciones para que el comercio de días y días de calendario no son los mismos. Sin embargo, puede que tenga que trabajar con los tiempos de la serie, tanto en términos de comercio de días y días de calendario. Por ejemplo, las devoluciones se calculan a partir de secuencial a diario los precios de cierre, independientemente de si un fin de semana interviene. Pero puede que también desee hacer basado en el calendario de presentación de informes semanales de precios de los resúmenes. Por estas razones, el xts paquete, una extensión del zoológico, se utiliza comúnmente con los datos financieros en R. Un ejemplo de cómo podría ser utilizada con los datos de la siguiente manera.

    Suponiendo que los datos que se muestran en su ejemplo, en el dataframe df

      library(xts)
      stocks <- xts(df[,-1], order.by=as.Date(df[,1], "%m/%d/%Y"))
    #
    #  daily returns
    #
       returns <- diff(stocks, arithmetic=FALSE ) - 1
    #
    #  weekly open, high, low, close reports
    #
       to.weekly(stocks$Hero_close, name="Hero")

    que da la salida

               Hero.Open Hero.High Hero.Low Hero.Close
    2013-03-15    1669.1   1684.45   1669.1    1684.45
    2013-03-22    1690.5   1690.50   1623.3    1659.60
    2013-03-28    1617.7   1617.70   1542.0    1542.00
    Un millón de gracias 🙂 trabajó como un encanto..
    WaltS no he tenido.semanal(acciones$Hero_close, nombre=»Héroe»)
    Usted tendrá que utilizar la declaración de la biblioteca(xts) para que funcione.

    OriginalEl autor WaltS

  2. 15

    De entrada. Vamos a empezar con el texto de la entrada se muestra en la pregunta ya que la pregunta no proporcionar el csv de entrada:

    Lines <- "Dates   Bajaj_close Hero_close
    3/14/2013   1854.8  1669.1
    3/15/2013   1850.3  1684.45
    3/18/2013   1812.1  1690.5
    3/19/2013   1835.9  1645.6
    3/20/2013   1840    1651.15
    3/21/2013   1755.3  1623.3
    3/22/2013   1820.65 1659.6
    3/25/2013   1802.5  1617.7
    3/26/2013   1801.25 1571.85
    3/28/2013   1799.55 1542"

    zoológico. "ts" serie de la clase normalmente no representan fecha de índices, pero podemos crear un zoológico de la serie que tiene (ver el zoológico de paquete):

    library(zoo)
    z <- read.zoo(text = Lines, header = TRUE, format = "%m/%d/%Y")

    Alternativamente, si usted ya ha leído esto en un marco de datos DF entonces podría convertirse en un zoológico como se muestra en la segunda línea a continuación:

    DF <- read.table(text = Lines, header = TRUE)
    z <- read.zoo(DF, format = "%m/%d/%Y")

    En cualquiera de los casos anteriores z ia un zoológico de la serie con un "Date" el tiempo de la clase de índice. También se podría crear el zoológico de la serie, zz, que utiliza 1, 2, 3, … como el índice de tiempo:

    zz <- z
    time(zz) <- seq_along(time(zz))

    ts. Cualquiera de estos podría ser convertido a un "ts" serie de la clase:

    as.ts(z)
    as.ts(zz)

    La primera tiene un índice de tiempo que es el número de días transcurridos desde la Época de (el 1 de enero de 1970) y se han NAs por falta de días, y la segunda tendrá 1, 2, 3, … como el índice de tiempo y no NAs.

    Serie mensual. Normalmente "ts" de la serie mensual, trimestral o anual de la serie. Así que si vamos a agregar la entrada en meses podríamos razonablemente la representan como un "ts" serie:

    z.m <- as.zooreg(aggregate(z, as.yearmon, mean), freq = 12)
    as.ts(z.m)
    G. Grothendieck Gracias por tu rpl..:) va a probar tu solución

    OriginalEl autor G. Grothendieck

  3. 1

    Ver esta pregunta: La conversión de datos.marco para xts order.by requiere de un tiempo adecuado de objetos basado en, lo que sugiere mirar argumento order.by,

    Aceptables en la actualidad las clases incluyen: ‘Fecha’, ‘POSIXct’, ‘timeDate’,
    así como ‘yearmon’ y ‘yearqtr’ donde los valores de índice de permanecer
    único.

    Y sugiere, además, una conversión explícita el uso de order.by = como.POSIXct,

    df$Date <- as.POSIXct(strptime(df$Date,format),tz="UTC")
    xts(df[, -1], order.by=as.POSIXct(df$Date))

    Donde su formato es asignado elswhere,

    format <- "%m/%d/%Y" #see strptime for details

    OriginalEl autor ChuckCottrill

  4. 0

    Con biblioteca fpp, usted puede crear fácilmente el tiempo de la serie con formato de fecha:
    time_ser=ts(data,frequency=4,start=c(1954,2))

    aquí comenzamos en el 2º trimestre de 1954 con cuartos de fequency.

    OriginalEl autor louisv

Dejar respuesta

Please enter your comment!
Please enter your name here