2010-04-05 10 views
6

Ich brauche eine Funktion für einen Vektor, der kein ts-Objekt nimmt. Ich versuche, es in einen einfachen alten Vektor zu konvertieren, aber ich kann es einfach nicht herausfinden. Ich googelte herum, aber meistens versuchen Leute Datentypen in ts-Objekt zu konvertieren. Ich möchte in die andere Richtung gehen. Jede Hilfe wäre willkommen.Konvertieren eines ts (Zeitreihen) -Objekts in einen Vektor in R

Antwort

13
data(AirPassengers) # already in your R installation, via package "datasets" 
AP = AirPassengers  
class(AP) 
# returns "ts" 

AP1 = as.numeric(AP) 
# returns "numeric" 

# another way to do it 
AP1 = unclass(AP) 

AP1 ist ein Vektor mit den gleichen Werte und Länge wie AP. Die Klasse ist nun numerisch statt ts, was zum Teil bedeutet, dass die Indizes keine Art von Datum-Zeit-Objekten mehr sind, sondern nur gewöhnliche sequentielle Ganzzahlen.

So w/r/t die spezifische Frage im OP, eine der beiden Schnipsel oben wird „convert [a ts Objekt] auf einen einfachen alten Vektor

Wenn Sie das gleiche tun müssen Sache mit dem Indizes anstatt oder zusätzlich zu den Werten - dh von Date-Objekten in numerischen, Sie, dass wie so tun können:

fnx = function(num_days_since_origin, origin="1970-01-01") { 
    as.Date(num_days_since_origin, origin="1970-01-01") 
} 

a = as.Date("1985-06-11") 
a2 = as.numeric(a) 
# returns: 5640 
a3 = fnx(5640) 
# returns: "1985-06-11" (a date object) 
+0

+1 ich liebe unclass. Es ist eine gute Möglichkeit, den Inhalt eines Objekts in R zu überprüfen. –

+1

Ernsthaft? as.numeric (AirPassangers) gibt den Stichprobenwert an diesem Datum und nicht das Datum selbst zurück. Bitte zeigen Sie bitte, wie Sie aus den Daten Sekunden seit der Epoche erhalten! –

Verwandte Themen