2017-09-08 14 views
4

私は多くのゼロを持つベクトルを持っています。ベクトルに値を代入する

v <-(3,0,0,5,0,0,0,10,0,0,0,0) 

ゼロ以外の数字を前方に配分し、ゼロ以外の数字の前にあるすべてを平均で置き換えたいとします。

たとえば、(3,0,0)は(1,1,1)に置き換える必要があります。

(3 + 0 + 0)/ 3 = 1

vが

(1,1,1,1.25,1.25,1.25,1.25,2,2,2,2,2) 

これを行うことができます機能がありますになる必要がありますか?

ありがとうございました。

答えて

13

あなたは機能ave

ave(v,cumsum(v)) 
    [1] 1.00 1.00 1.00 1.25 1.25 1.25 1.25 2.00 2.00 2.00 2.00 2.00 
+0

グレート答えを探しています!これはまさに私が必要としていたものです! – Bogdan

関連する問題