本文介绍了对后续元素对应用函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设 x
是一个向量,而 myfunc
是一个有两个参数的函数.我希望在 x
的后续元素对上获得 myfunc
结果的向量.根据定义,该向量的长度应该比 x
的长度小 1.
Suppose x
is a vector, and myfunc
is a function of two arguments. I wish to get a vector of the results of myfunc
on subsequent pairs of elements from x
. By definition, that vector should be of length 1 less than x
's length.
例如,如果 x 和
myfunc <- function(a,b) {
return(log(b/a))
}
然后我会期待
> apply_on_pairs(x, myfunc)
[1] 0.6931472 0.4054651 0.2876821
(相当于c(myfunc(1,2), myfunc(2,3), myfunc(3,4))
)
推荐答案
mapply(myfunc,x[-length(x)],x[-1])
# [1] 0.6931472 0.4054651 0.2876821
mapply(...)
将第一个参数中的函数应用"到后续参数,在这种情况下,我们传递 x[1:3]
和 x[2:4]
作为 mapply(...)
的第二个第三个参数.
mapply(...)
"applies" the function in the first argument to the subsequent arguments, in this case we pass x[1:3]
and x[2:4]
as the second the third arguments to mapply(...)
.
这篇关于对后续元素对应用函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!