2010-04-05 16 views
6

Bir ts nesnesi almayan bir vektör üzerinde bir işlev kullanmam gerekiyor. Düz eski bir vektöre dönüştürmeye çalışıyorum ama bunu anlayamıyorum. Etrafta dolaştım ama çoğunlukla insanlar veri türlerini ts nesnesine dönüştürmeye çalışıyorlar. Ben başka yöne gitmek istiyorum. Herhangi bir yardım takdir edilecektir.Bir ts (Zaman Serileri) nesnesini bir Vector'e dönüştürme

cevap

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 AP olarak aynıdeğerleri ve uzunluğa sahip olan bir vektördür. Sınıf artık ts yerine sayısaldur, yani, endeksler artık bir çeşit tarih-zaman nesnesi değil, sıradan sıralı tamsayılardır.

w Yani/r/OP spesifik soruya, iki snippet'lar birini t yukarıda olacak "bir düz eski vektöre dönüştürme [a ts nesne]"

aynı şeyi gerekirse endeksleri ile şey yerine veya buna ek, değerlerinde - sayısal tarihi nesnelerden yani, bunu böyle bunu yapabilir:

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 Ben unclass seviyorum. Bir nesnenin içeriğini incelemek için harika bir yoldur. R. –

+1

Cidden? as.numeric (AirPassengers), tarihte değil, o tarihte örneklenen değeri döndürür. Lütfen verilerden bu yana geçen zamandan nasıl saniye geçeceğini gösterin! –

İlgili konular