2012-07-10 11 views
5

Mam szereg wartości podejmowanych co godzinę w ciągu roku. Czy jest możliwe utworzenie obiektu z szeregiem czasowym, który zachowuje wartości godziny i roku?Używanie R: Jak utworzyć obiekt z szeregiem czasowym z datami?

Mój kod używa wartości w kolumnie 1 stockprices, ale nie wykorzystuje datę:

stockprices.ts <- ts(stockprices[,1],start=1, freq=168) 

Odpowiedz

16

Nie dostarcza próbkę swoich danych, ale istnieje wiele innych odpowiedzi na SO (here for example) obejmujący to pytanie. Używam Xts do mojej pracy w serii czasowej, chociaż są inne dobre wybory.

Zakładając, że dane są dwie kolumny, mogłeś ramka danych ładowany poprzez read.table:

> stockprices <- data.frame(prices=c(1.1,2.2,3.3), 
       timestamps=c('2011-01-05 11:00','2011-01-05 12:00','2011-01-05 13:00')) 
> stockprices 
    prices  timestamps 
1 1.1 2011-01-05 11:00 
2 2.2 2011-01-05 12:00 
3 3.3 2011-01-05 13:00 

można przekonwertować do XTS szeregów czasowych w następujący sposób:

> require(xts) 
> stockprices.ts <- xts(stockprices$prices, order.by=as.POSIXct(stockprices$timestamps)) 
> stockprices.ts 
        [,1] 
2011-01-05 11:00:00 1.1 
2011-01-05 12:00:00 2.2 
2011-01-05 13:00:00 3.3 
+2

Co zrobić, jeśli nie było czas, ale tylko daty? –

+2

@ScottDavis: jeśli chcesz ustawić proste daty, możesz zmienić wywołanie funkcji 'as.POSIXct' na' as.Date' i powinno działać tak samo. – khoxsey