2014-02-19 50 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