2017-02-15 8 views
2
Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 
2015 75 74 60 57 67 131 299 138 329 333 307 213 
2016 141 174 72 219 139 163 160 82 150 177 138 138 

Выше данных, над которыми я работаю. Я импортировал данные в R, Изначально это импортируется как data.frame.Преобразование кадра данных во временные ряды

Импорт данных из файла xlsxxlsx с помощью библиотеки

class(test) 
"data.frame" 

Я хочу, чтобы класс должен быть преобразован в ts. Я пробовал немного из существующего метода, но я все еще не могу это сделать.

ответ

5

Нечто подобное, кажется, работает:

ts(df[-1], frequency = 1, start = df[1, 1], end = df[2, 1]) 

Выход:

Time Series: 
Start = 2015 
End = 2016 
Frequency = 1 
    Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 
2015 75 74 60 57 67 131 299 138 329 333 307 213 
2016 141 174 72 219 139 163 160 82 150 177 138 138 
+1

@lmo очень хороший момент на самом деле. Благодаря! – LyzandeR

+0

спасибо за обновление. Этот метод отлично работает –

+0

Вы очень приветствуетесь @PraveenRKaruppannan. Счастлив помочь :) – LyzandeR

2

Вы можете сделать

test = ts(unlist(df[,-1]), start = df[1,1], frequency = ncol(df[,-1])) 

test 
#  Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 
#2015 75 141 74 174 60 72 57 219 67 139 131 163 
#2016 299 160 138 82 329 150 333 177 307 138 213 138 

class(test) 
#[1] "ts" 

#Obtain the frequency 
unique(cycle(test)) 
#[1] 1 2 3 4 5 6 7 8 9 10 11 12 

#Obtain the years 
unique(floor(time(test))) 
#[1] 2015 2016 
+1

Этот код действительно работает. –

 Смежные вопросы

  • Нет связанных вопросов^_^