Pregunta

Tengo estos datos en 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

Estos son precios de cierre de acciones de la Bolsa de Valores de Perú, y quiero convertirlos a xts para poder encontrar la cartera óptima y otras cosas, pero no puedo encontrar la manera de convertir este CSV a xts.He comprobado la respuesta a muchas de las preguntas aquí, pero ninguna funcionó.

Algunos de los errores que tengo son:

  • El índice tiene XXXX entradas incorrectas en las filas de datos
  • Datos ambiguos.

¿Alguien puede ayudarme?

¿Fue útil?

Solución

csv significa coma -valores-separados, por lo que el diseño que se muestra en la pregunta no es csv. Asumiremos que los datos realmente están en formato csv y no en el formato que se muestra en la pregunta. Si realmente tiene la forma que se muestra en la pregunta en lugar de csv, omita el argumento sep="," en read.zoo a continuación. Además, si hay otras desviaciones, es posible que deba modificar más los argumentos. Consulte ?read.zoo y la viñeta Lectura de datos en el zoológico en el paquete del zoológico. .

Aquí usamos read.zoo en el paquete zoo para leer los datos como un objeto zoo, z, y luego lo convertimos a xts, x.

Consulte R News 4/1 que trata específicamente la fecha manejo de las fechas de Excel teniendo en cuenta que es posible que tengamos que modificar ligeramente el código a continuación si se está utilizando la versión Mac de Excel (como se describe allí en la referencia).

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)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top