Я новичок в R, так что, надеюсь, это решаемая проблема для некоторых из вас.У меня есть датафрейм, содержащий более миллиона точек данных.Моя цель - вычислить взвешенное среднее с изменяющейся начальной точкой.
Для иллюстрации рассмотрим этот кадр (data.frame (matrix (c (1,2,3,2,2,1), 3,2))))
X1 X2
1 1 2
2 2 2
3 3 1
, где X1 - данные, а X2 - вес выборки.
Я хочу вычислить средневзвешенное значение для X1 от начальной точки 1 до 3, от 2: 3и из 3: 3.
С помощью цикла я просто написал:
B <- rep(NA,3) #empty result vector
for(i in 1:3){
B[i] <- weighted.mean(x=A$X1[i:3],w=A$X2[i:3]) #shifting the starting point of the data and weights further to the end
}
С моими реальными данными это невозможно вычислить, потому что для каждой итерации data.frame изменяется и вычисляетсязанимает часы без результата.
Есть ли способ реализовать начальную точку переменной с помощью команды apply, чтобы увеличить производительность?
С уважением, Рубен