У меня есть набор данных с продольными данными в личностно-ориентированном формате, например:
pid varA_1 varB_1 varA_2 varB_2 varA_3 varB_3 ...
1 1 1 0 3 2 1
2 0 1 0 2 2 1
...
50k 1 0 1 3 1 0
Это приводит к большому кадру данных, с минимальными 50k наблюдениями и 90 переменными, измеренными на срок до 29 периодов.
Я хотел бы получить более ориентированный на период формат, как таковой:
pid index start stop varA varB varC ...
1 1 ...
1 2
...
1 29
2 1
Я пробовал разные подходы для изменения формы данных (*apply
, plyr
, reshape2
, циклы, добавление или предварительное заполнение всех числовых матриц и т. д.), но, похоже, не получается приличное время обработки (+ 40 минут для подмножеств).По пути я обнаружил различные намеки на то, чего следует избегать, но я все еще не уверен, упустил ли я какое-то узкое место или возможное ускорение.
Существует ли оптимальный подход к такой обработке данных, чтобы я мог оценить лучшее время обработки, которое я могу достичь в чистом R-коде?На Stackoverflow было похожих вопросов , но они не дали убедительных ответов ...