У меня есть вектор 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]] ])
Тем не менее, это для цикла довольно медленно для больших размеров. Мне было интересно, есть ли более прямой способ для расчета? Я пытался использовать lapply
, но, похоже, он не работает для комбинации вектора + списка индексов + функции.