Pregunta

Tengo un archivo con muchas filas de este tipo

2010-01-12 19:40   1021.00000   0.00001     1.00
2010-01-12 19:50   1031.00000   0.00000     -1.00

Con el fin de leerlo como el uso zoológico I

tmp <- read.table("myfile")
GOEMD <- zoo(tmp[,3], as.chron(paste(tmp[,1],tmp[,2]), format="%Y-%m-%d %H:%M"))

que funciona correctamente Pero me gustaría utilizar read.zoo() lugar.

He intentado

f <- function(x)  as.chron(paste(tmp[,1],tmp[,2]))
tmp <- read.zoo("myfile", index = 1:2, sep=" ", FUN  = f)

e incluso especificando

colClasses= c("character","character","numeric","numeric","numeric")

pero no funciona; dice: la línea 136 (el que yo he pegado arriba) no tiene 14 elementos.

También he intentado:

tmp <- read.zoo("myfile", index = 1:2, sep=" ", FUN  = as.chron)
¿Fue útil?

Solución

  1. El error tipográfico en f ya se señaló.
  2. También hay algunas características de read.zoo que es posible que desee aprovechar. En primer lugar, tenga en cuenta que si el valor del argumento index es una lista a continuación las columnas referenciadas en cada componente de esa lista se pasan como argumentos separados a FUN. También tenga en cuenta que un argumento FUN2 está disponible que se aplica a la salida de FUN por lo que podemos escribir de una manera compacta como esto:

Por lo tanto intente lo siguiente:

library(zoo)
library(chron)

Lines <- "2010-01-12 19:40   1021.00000   0.00001     1.00
2010-01-12 19:50   1031.00000   0.00000     -1.00"

z <- read.zoo(textConnection(Lines), index = list(1, 2), 
        FUN = paste, FUN2 = as.chron)

Lo anterior fue escrito para ser autónomo por lo que sólo puede copiar textualmente en el portapapeles y luego pegarlo en su sesión de R. Para utilizarlo con su archivo de reemplazar textConnection(Lines) con "myfile".

Otros consejos

Su función f tiene que buscar tmp. Probablemente previstos:

f <- function(x)  as.chron(paste(x[,1],x[,2]))
tmp <- read.zoo("myfile", index = 1:2, sep=" ", FUN = f)

Además, los datos de la muestra se registró parece que está delimitado por tabuladores, no en el espacio delimitado, lo que puede tener a este lugar:

tmp <- read.zoo("myfile", index = 1, sep="\t", FUN = as.chron)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top