我有一个有很多零的向量.
v <-(3,0,0,5,0,0,0,10,0,0,0,0)
Run Code Online (Sandbox Code Playgroud)
我想向前分发非零数字并用非零数字替换平均值之前的所有数字.
例如(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)
Run Code Online (Sandbox Code Playgroud)
有没有可以做到这一点的功能?
谢谢.
Ony*_*mbu 20
你正在寻找这个功能 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
Run Code Online (Sandbox Code Playgroud)