У меня есть функция f(list,t)
, где первый аргумент - list
, а второй t
- число. Я хочу применить f к столбцам матрицы M и элементам вектора T соответственно. Следовательно, если столбцы M (M_1, M_2, ..., M_k) и T = (t_1, t_2, ..., t_k), я хочу получить следующее:
f (M_1, t_1), f (M_2, t_2), ..., f (M_k, t_k).
Есть ли эффективный способ сделать это без использования цикла for?
Например, если
f <- function(list,x) {x %in% list}
M <- matrix(1:12,4,3)
T <- c(1,2,10)
Я ожидаю получить
TRUE FALSE TRUE
Следующая строка применяет f к каждому столбцу M и каждому элементу T
apply(M,2,f,T)
Но мне нужна только диагональ этого вывода, поэтому я хочу избежать лишних вычислений.