有没有办法对以下内容进行矢量化?
# x: some vector
# index: some vector of indeces
n <- length(index)
y <- rep(NA, n)
for (i in 1:n) {
y[i] = myfunction(x[1:index[i])
}
基本上,我想应用于myfunction
vector 的各种子集x
。似乎这些apply
函数并不是为了处理这个问题而构建的。
有没有办法对以下内容进行矢量化?
# x: some vector
# index: some vector of indeces
n <- length(index)
y <- rep(NA, n)
for (i in 1:n) {
y[i] = myfunction(x[1:index[i])
}
基本上,我想应用于myfunction
vector 的各种子集x
。似乎这些apply
函数并不是为了处理这个问题而构建的。
我不确定我是否理解你在做什么,但如果你想从x
向量中获取第一个index
-es 元素数量,而不是组成一些示例数据:
x <- runif(10)
index <- c(2,5,4,8)
并尝试:
> lapply(index, function(index) return(x[1:index]))
[[1]]
[1] 0.3869757 0.4060021
[[2]]
[1] 0.3869757 0.4060021 0.4843015 0.2064443 0.4614179
[[3]]
[1] 0.3869757 0.4060021 0.4843015 0.2064443
[[4]]
[1] 0.3869757 0.4060021 0.4843015 0.2064443 0.4614179 0.9278044 0.7351291
[8] 0.9792204