我有一个像
这样的矢量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)?
答案 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