2016-11-28 13 views
1

Das folgende Problem in R scheint für viele von Ihnen einfach, aber da ich relativ neu bin, wäre es sehr hilfreich, wenn Sie mir helfen könnten. Ich möchte im Wesentlichen ein mehrdimensionales (3 Dims) Array als Datenframe schreiben, das ich leichter manipulieren kann.Multidimensionales Array in Datenrahmen

Ich arbeite mit einer NetCDF-Datei von monatlichen Daten der Meeresoberflächentemperatur (SST) für den Zeitraum vom 01.01.1891 bis 01.12.2015. Das Extrahieren der SST-Variablen aus der Datei (unter Verwendung des ncdf4-Pakets) ergibt ein mehrdimensionales Array (Länge = 360, Breite = 180, Zeit = 1992) (Im Grunde globale Kartenschichten, gestapelt über den Zeitvektor, einschließlich NA-Werte zu Land) Temperaturen).

Was ich stattdessen haben möchte, ist ein Datenrahmen, in dem: die erste Spalte ist die Länge, zweite Breite, dritte Zeit, vierte SST-Werte. Mein Problem ist, dass die Dimensionen nicht die gleiche Länge haben und ich kann nicht sehen, wie ich R verstehen kann, dass es die Daten richtig entstapeln muss.

Ein Beispiel dessen, was ich aussehen würde wollen:

Longitude Latitude Time SST 
0,5   89.5  01/01/1891 1.25 
0.5   89  01/01/1891 1.27 
0.5   88.5  01/01/1891 1.28 
…   …  … … 
1   89.5  01/01/1891 1.28 
1   89  01/01/1891 1.29 
1   88.5  01/01/1891 1.26 
…   …  … … 
0.5   89.5  01/02/1891 1.26 
0.5   89  01/02/1891 1.28 
…   …  … … 

Vielen Dank so viel Geduld für Ihre Zeit und!

+0

versuchen mit 'Bibliothek (reshape2) verwenden; schmelzen (yoirarray) ' – akrun

+1

** Arbeitete perfekt !! ** Vielen Dank. Ich weiß ehrlich nicht, warum ich sicher war, dass es nicht so einfach damit umgehen könnte, obwohl ich über diese Funktion Bescheid wusste. @akrun –

Antwort

-1

Wir melt

library(reshape2) 
melt(arrayObj)