У меня есть кадр данных с столбцом идентификатора, столбцом даты (12 месяцев для каждого идентификатора), и у меня есть 23 числовых переменных. Я хотел бы получить процентное изменение по месяцам в каждом ID. Я использую пакет quantmod, чтобы получить процентное изменение.
Вот пример с тремя столбцами (для простоты):
ID Date V1 V2 V3
1 Jan 2 3 5
1 Feb 3 4 6
1 Mar 7 8 9
2 Jan 1 1 1
2 Feb 2 3 4
2 Mar 7 8 8
Я попытался использовать dplyr и функцию summaryise, но это не увенчалось успехом. В частности, я попробовал следующее (поезд - это имя набора данных):
library(dplyr)
library(quantmod)
group1<-group_by(train,EXAMID)
foo<-function(x){
return(Delt(x))
}
summarise_each(group1,funs(foo))
Я также попытался использовать функцию do в dplyr, но мне это тоже не удавалось (имея плохую ночь, я думаю!).
Я думаю, что проблема заключается в функции Delt. Когда я заменяю Delt на функцию sum:
foo<-function(x){
return(sum(x))
}
summarise_each(group1,funs(foo))
В результате каждая переменная суммируется по дате для каждого идентификатора. Итак, как можно изменить процент за месяц по сравнению с месяцем для каждого идентификатора?