У меня есть фрейм данных, и я хотел бы добавить его каждые три строки. Затем примените cumprod к строкам, чтобы получить новый data.frame с результирующими новыми строками.
В конце у меня будет только одна треть от числа строк.
Ниже вы можете найти код, который я написал. Я попытался найти класс объектов и скопировать код, который работал для вектора, а не матрицы.
XYZ<-read.xlsx2("XYZ.xlsx",1)
XYZ.CUT<-aggregate(XYZ~gl(nrow(XYZ)/3, 3), data.frame(XYZ), sum)
F.XYZ<-apply(t(XYZ.CUT+1),1,cumprod)
Вот что у меня есть:
X Y Z
-0,01% 0,32% 0,11%
-0,04% 0,01% 0,45%
-0,11% -0,06% 0,03%
0,03% -0,04% 0,45%
0,02% 0,04% 0,30%
-0,07% -0,11% 0,11%
-0,12% -0,13% 0,30%
-0,01% -0,07% 0,04%
-0,37% 0,08% 0,05%
сначала хочу:
X Y Z
-0,16% 0,25% 0,59%
-0,02% -0,11% 0,86%
-0,50% -0,12% 0,39%
и после добавления 1 к каждому элементу:
X Y Z
(1-0,16%) (1+0,25%) (1+0,59%)
(1-0,02%) (1-0,11%) (1+0,86%)
(1-0,50%) (1-0,12%) (1+0,39%)
Я хотел бы сделать комет из строк:
X Y Z
x1 y1 z1
x1*x2 y1*y2 z1*z2
x1*x2*x3 y1*y2*y3 z1*z2*z3
Расширенные приветствия.