Domanda

Ho un dato che ha una colonna data e altre 10 colonne. La colonna della data ha il formato del 199010. Quindi è yyyymm. Sembra che lo zoo / XTS richieda che la data abbia informazioni sui giorni in esso. C'è un modo per affrontare questo problema?

hier ist i miei dati

structure(list(Date = 198901:198905, NoDur = c(5.66, -1.44, 5.51, 
5.68, 5.32)), .Names = c("Date", "NoDur"), class = "data.frame", row.names = c(NA, 
5L))


data<-read.zoo("C:/***/data_port.csv",sep=",",format="%Y%m",header=TRUE,index.column=1,colClasses=c("character",rep("numeric",1)))
.

È stato utile?

Soluzione

Il codice ha questi problemi:

    .
  • I dati sono spazi separati ma il codice specifica che è la virgola separata
  • I dati non descrivono le date poiché non c'è giorno ma il codice utilizza il valore predefinito delle date
  • I dati non sono forniti in forma riproducibile.Nota come si può semplicemente copiare i dati e il codice qui sotto e incollarlo in R senza alcun lavoro aggiuntivo.

Prova questo:

Lines <- "Date   NoDur
198901  5.66
198902  -1.44
198903  5.51
198904  5.68
198905  5.32
"

library(zoo)
read.zoo(text = Lines, format = "%Y%m", FUN = as.yearmon, header = TRUE, 
       colClasses = c("character", NA))
.

Quanto sopra converte l'indice in classe "yearmon" che probabilmente rende il senso di più senso qui ma sarebbe alternativamente possibile convertirlo in classe "Date" utilizzando FUN = function(x, format) as.Date(as.yearmon(x, format)) al posto del posto del Argomento FUN sopra.

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