ベクトルがvec <- c(1, 4, 6, 3, 2, 7)
の場合、i
がからの距離の逆数である前の要素の加重平均であるvec
を計算します。R:順序付きベクトルの前の要素を計算する
この機能は次のように進められます。
- 最初の要素の場合、
1
は、NA
(前の要素なし)を返す必要があります。 - 2番目の要素の場合、
4
は、1
を返す必要があります。 - 第3要素
6
については、weighted.mean(x = c(1,4), w = c(1,2))
を返す必要があります。第4要素3
について - 、
weighted.mean(x = c(1,4,6), w = c(1,2,3))
を返す必要が得られたベクターresult
はlength(result) == length(vec)
、c(NA, 1, 3, 4.5, 3.9, 3.266667)
であるべきです。
UPDATE: は、私ははっきりとループ
result <- numeric()
for (i in 1:length(vec)) {
if (i == 1) {
result <-
c(result, NA)
} else {
previous_elements <- vec[1:(i-1)]
result <-
c(result,
weighted.mean(x = previous_elements, w = 1:length(previous_elements)))
}
}
あなたの努力と、どこがうまくいかないかを示してください。 –
可能な重複:http://stackoverflow.com/q/743812/903061 - 特に、*加重*移動平均ではありませんが、メソッドの多く(例: 'RcppRoll')はその機能を提供します。 – Gregor
[これは別です](http://stackoverflow.com/q/8720055/903061)、ちょっと古いと思われますが。 – Gregor