LINUX.ORG.RU

R преобразование данных в матрицу

 ,


0

2

Кастую всех причастных: r, Evgueni, DNA_Seq, ymn, oami, DRVTiny, psv1967, ins3y3d, plantago. Никого не упустил?

В наличии вот такие данные:

> str(MSK)
'data.frame':	14685 obs. of  3 variables:
 $ code  : Factor w/ 423 levels "100 975","101 479",..: 281 281 281 281 281 281 281 281 281 281 ...
 $ period: Date, format: "2010-01-01" "2010-02-01" "2010-03-01" "2010-04-01" ...
 $ sales : num  515 195 414 410 551 18 373 74 62 313 ...

Необходимо все это безобразие загнать в ts(), каждый code отдельно в своем столбце. И по времени не все наблюдения полны, по некоторым кодам наблюдение прекратилось, а по некоторым только недавно началось. Отсутствующие явно надо преобразовать в NA, но это не главное.

Хотелось бы какое-нибудь красивое решение, в лоб то не сложно решить, а вот как правильно это делать, хотелось бы знать.

Славься r, славься r!



Последнее исправление: ErasimHolmogorin (всего исправлений: 1)

Ответ на: комментарий от vertexua

Ты с R когда либо работал? Data.matrix делает совершенно не то, что мне надо.

Объясняя на пальцах. У меня сейчас такая простынка:

1
2
3
4
5
6

А надо чтобы стало так:

1 4
2 5
3 6
ErasimHolmogorin
() автор топика
Последнее исправление: ErasimHolmogorin (всего исправлений: 1)

Можно посчитать максимальное количество записей по кодам, затем добавить для каждого кода нужное число NA. Далее сортировать по code и сделать matrix(vec,nrow = ?,ncol = ?) с соответствующими nrow и ncol.

anonymous
()
Ответ на: комментарий от anonymous

Я думал вообще выбросить эти данные, их где-то 25% от всех серий. В общем получается такая гистограмма:

http://rghost.ru/51497540/image.png

Но что-то расхотелось. Слишком уж геморно, некоторые данные отсутствуют в начале, некоторые в конце, не исключаю, что есть и с дырами.

ErasimHolmogorin
() автор топика
Последнее исправление: ErasimHolmogorin (всего исправлений: 1)

Например так:

xtabs <- xtabs(sales ~ period + code, MSK)

library(xts)

xts(xtabs, order.by = as.Date(rownames(xtabs)))

MXN
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.