die Konvertierung einer Daten-frame zu monatlichen Zeitreihen

Habe ich einen Daten-frame von einem monatlichen Daten für 100 Jahre (1200 Datenpunkte) mit den Monaten, in Spalten und Jahre in den Reihen. Ich will wandeln es in eine monatliche Zeitreihe, und ich habe versucht, mehrere Möglichkeiten, von denen keine den richtigen "zeitlichen" Struktur.

Liegt das problem mit " R " in Anbetracht der Daten-frame als 100 Beobachtungen (Jahre) 12 Variablen (die Monate). Hier ist eine reproduzierbare code für mein neuester Versuch:

set.seed(12)
dummy.df <- as.data.frame(matrix(round(rnorm(1200),digits=2),nrow=100,ncol=12))
rownames(dummy.df) <- seq(from=1901, to=2000)
colnames(dummy.df) <- c("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec")
dummy.df.ts <- ts(as.vector(as.matrix(dummy.df)), start=c(1901,1), end=c(2000,12), frequency=12)

In die "dummy.df.ts" - Objekt, die Zeilen und Spalten werden vertauscht und statt der sequentiellen Beobachtungen in Spalten, alle die januarys februarys etc gestapelt werden, eine nach der anderen. Wie komme ich an die korrekte zeitliche Struktur?

Beispiel meine Daten: dies sind die monatlichen Temperatur-Werte von 1901 - 1905

fr.monthly.temp.sample  

     JAN FEB MAR  APR  MAY  JUN  JUL  AUG  SEP  OCT NOV DEC  
1901 2.7 0.4 4.7 10.0 13.0 16.9 19.2 18.3 15.7 10.6 4.9 3.5  
1902 4.1 3.2 7.5 10.3 10.0 15.1 18.2 17.4 15.0 10.2 6.3 3.5  
1903 3.8 5.9 7.6  7.1 12.9 14.9 17.6 17.3 15.5 12.1 6.9 2.7  
1904 3.0 4.6 5.5 10.3 13.6 16.3 20.2 18.5 13.9 11.2 5.4 4.8  
1905 1.7 4.0 7.4  9.3 11.9 16.5 20.0 17.6 14.7  8.4 5.5 3.8  

die Konvertierung einer Daten-frame zu monatlichen Zeitreihen

Und mit dieser ts () - Aufruf:

fr.monthly.temp.sample.ts <- ts(as.vector(as.matrix(fr.monthly.temp.sample)),                              start=c(1901,1), end=c(1905,12), frequency=12)

Dies ist die Ausgabe die ich bekomme für die Zeit-Serie-Objekt:

fr.monthly.temp.sample.ts  

      Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec  
1901  2.7  4.1  3.8  3.0  1.7  0.4  3.2  5.9  4.6  4.0  4.7  7.5  
1902  7.6  5.5  7.4 10.0 10.3  7.1 10.3  9.3 13.0 10.0 12.9 13.6  
1903 11.9 16.9 15.1 14.9 16.3 16.5 19.2 18.2 17.6 20.2 20.0 18.3  
1904 17.4 17.3 18.5 17.6 15.7 15.0 15.5 13.9 14.7 10.6 10.2 12.1  
1905 11.2  8.4  4.9  6.3  6.9  5.4  5.5  3.5  3.5  2.7  4.8  3.8  

die Konvertierung einer Daten-frame zu monatlichen Zeitreihen

--Beachten Sie die veränderte zeitliche Struktur (die Werte aus den Spalten werden nun in den Zeilen..)--

Dank.

Ich habe bearbeitet meine Antwort. Ich weiß nicht wirklich Erfahrung dieses "switching" zwischen Spalten und Zeilen in der angezeigten Daten durch plot. Wahrscheinlich kann man besser Antworten mit einer Stichprobe Ihrer Daten, nur ein paar Jahre, und die Buchung der chart, den Sie erhalten.
ich habe noch meine original-Daten und Diagramme zeigen die falsche Reihenfolge der Werte. EDIT-1-Lösung gibt mir eine multivariate Zeitreihe, die ist nicht das, was ich will, ich will es behalten, als eine univariate Serie für die weitere Bearbeitung..für EDIT 2, ich habe versucht, als.vector() für den gleichen Grund, aber das ist die operation, wodurch die Bestellung Problem. vielleicht Lösung #1 geschrieben von @Alexander funktioniert, ich habe noch zu versuchen, die..
Mein edit 1 war nicht die Lösung... es war nur zu bewusst darüber, wie ts() funktioniert. Mein edit 2 Schritte mit den Daten, die BEREITS in einem Vektor... ich wusste gar nicht, dass Sie brauchen nur ein transponieren... round(seq(5,10,length.out=24),1) ist ein Vektor.

InformationsquelleAutor avg | 2013-04-27

Schreibe einen Kommentar