我有一个长度为X
的向量n
和一个可变长度的索引L
列表。假设F
是从R ^ m到R的函数。我想将函数F
应用于每个子向量X[L[[i]]
。这是我要计算F( X[ L[[i]] ] )
例如,假设F
是均值
set.seed(123)
X <- rnorm(100)
L <- list()
for(i in 1:10) L[[i]] <- sample(1:100,30,replace = FALSE)
通过蛮力我可以算出
out <- vector()
for(i in 1:10) out[i] <- mean(X[ L[[i]] ])
但是,对于较大的尺寸,此for循环相当慢。我想知道是否有更直接的计算方法?我曾尝试使用lapply
,但似乎不适用于向量+索引列表+函数的组合。