如何获得向量中最后1,2,3,...元素的平均值

时间:2014-02-19 00:44:34

标签: r

我有一个像

这样的矢量
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)的向量。我知道我可以使用中位数(tail(vec,n))来获得最后n个元素的中位数,但是如何在不使用慢速for循环的情况下将n应用于集合1:length(vec)?

1 个答案:

答案 0 :(得分:2)

例如,使用tail,您可以遍历矢量并提取第n个最后元素:

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