У меня есть фрейм данных с около 25000 записей и 10 столбцов. Я использую код для определения изменения предыдущего значения в том же столбце (NewVal) на основе другого столбца (y), в котором уже есть процентное изменение.
x=c(1:25000)
y=rpois(25000,2)
z=data.frame(x,y)
z[1,'NewVal']=z[1,'x']
Итак, я запустил это:
for(i in 2:nrow(z)){z$NewVal[i]=z$NewVal[i-1]+(z$NewVal[i-1]*(z$y[i]/100))}
Это займет гораздо больше времени, чем я ожидал. Конечно, я могу быть нетерпеливым человеком, как однажды сказал мне ужасное письмо, составленное для меня, но я пытаюсь вырваться из мира Excel (после того, как я прочитал http://www.burns -stat.com / pages / Tutor / spreadsheet_addiction.html , что вызывает у меня больше проблем, поскольку я начал не доверять данным - в этом письме также упоминались мои проблемы с доверием).
Я хотел бы сделать это без использования каких-либо функций из пакетов, поскольку я хотел бы знать, какова формула для создания значений - или, если хотите, я являюсь требовательным управляющим в соответствии с этим дружественным посланием.
Я также хотел бы знать, как получить скользящее среднее, как RollMan в CaTools. Или это, или как мне понять, какова их формула? Я попытался ввести rollmean, и я думаю, что это относится к другой функции (я новичок в R). Вероятно, это должен быть другой вопрос, но, как сказано в этом письме, я никогда не принимаю правильных решений в своей жизни.