一段时间以来,我一直在寻找解决方案,但似乎没有任何东西可以解决我遇到的这个看似简单的问题。
长话短说,我希望在向量的多个子集上运行一个函数,但我试图避免 for 循环。
作为一个简单的例子
x <- runif(20)
index <- round(runif(10,1,10))
[1] 7 8 4 6 9 3 1 2 8 7
现在我要做的是运行一个应用函数,它会找到 的最后 7 个条目的(比方说)平均值x
,然后是 的最后 8 个条目x
,然后是 x 的最后 4 个条目,等等。
这将以tail(x, n)
某种方式使用该函数,但我得到了错误的结果,因为 apply 系列函数将为其传递的参数中的每个元素返回一个结果(如在 mapply 中),这将不起作用length(x) != length(index)
,因为传递对象中每个元素的结果(在本例中为 x 的 20 个元素)。我希望得到 10 个均值作为输出。
想法?让我知道我是否可以稍微澄清一下这个例子。