2014-02-19 47 views
0

我有一個像如何獲得平均值的最後1,2,3,...元素的矢量

vec<-c(1,5,3,6,10) 

如何快速獲得的最後1,2位數的向量, 3,...列表中的元素?換句話說,我想回到中位以下每個子向量

c(10) 
c(6,10) 
c(3,6,10) ... 

的所以我的最終結果應該是一個矢量相當於C(10,8,6,4.5,3)。我知道我可以使用median(tail(vec,n))來獲取最後n個元素的中值,但是如何在不使用slow for循環的情況下將n應用於set 1:length(vec)?

回答

1

例如使用tail,您可以循環在你的向量並提取第n個元素最後:

sapply(seq_along(vec), 
     function(x)median(tail(vec,x))) 
[1] 10.0 8.0 6.0 5.5 5.0