2012-05-11 1 views
0

У меня есть data.frame, как показано ниже. Имена ростов идентифицируют даты, имена столбцов определяют категориальную переменную (учетную запись).Создание нескольких объектов временного ряда из одного файла data.frame с категориальными переменными в виде столбцов и дат в виде строк

Я хотел бы создать отдельный объект временного ряда для каждой категориальной переменной, имея в виду, что число категориальных переменных может меняться (прямо сейчас у меня 5, но я мог бы иметь 7, 8, 9 и т. Д.), и дата начала и окончания может меняться (прямо сейчас каждая категориальная переменная охватывает весь период времени, но это может быть не всегда так).

Я пробовал if петель и tapply() без каких-либо успехов. Я могу вручную получить результаты, которые я хочу, но я пытаюсь создать что-то, что можно масштабировать для произвольных чисел категориальных переменных и дат, т. Е. Независимо от их размера/диапазона.

 A B C D E 
14975 130 23 1 5 53 
15006 125 22 3 8 45 
15034 112 20 4 6 44 
15065 110 21 2 7 48 
15095 122 53 10 17 60 
15126 133 42 12 18 65 
15156 121 46 9 16 59 
15187 127 47 11 19 63 
15218 95 24 13 46 66 
15248 105 29 14 35 61 
15279 93 25 15 33 61 
15309 107 64 35 149 62 
15340 81 55 26 131 67 
15371 80 43 36 134 71 
15400 88 49 41 130 86 
15431 95 51 40 132 86 
15461 87 48 39 135 90 
15492 103 57 33 139 97 
15522 108 58 38 129 97 
15553 109 71 32 138 92 
15584 104 68 34 126 84 
15614 102 70 37 123 75 
15645 97 68 39 124 76 
15675 117 90 56 136 99 
15706 111 89 30 140 96 
15737 119 94 28 140 98 
15765 128 97 31 137 98 
15796 129 79 27 143 106 
15826 113 74 50 146 100 
15857 118 85 53 142 98 
15887 120 85 50 145 91 
15918 113 77 52 141 101 
15949 115 74 55 144 95 
15979 115 83 54 148 73 
16010 116 78 47 147 72 
16040 114 82 56 150 69 
+1

вы могли бы дать небольшой пример того, что вы надеетесь достичь? –

ответ

0

В базовой графике цикл for выполнит то, что вы описываете. Вот некоторые данные:

A<-round(rnorm(50,100,5)) 
B<-round(rnorm(50,10,5)) 
C<-round(rnorm(50,50,5)) 
t<-round(seq(1400,1500,length.out=50)) 
dat<-cbind(A,B,C) 

Настройка участка:

plot(t,A,ylim=c(0,150),type="n") 

Добавить строки:

for(i in 1:ncol(dat){ 
ts=lines(t,dat[,i]) 
} 

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

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