Для конкретного примера это может быть векторизовано

оложим, я хочу применить функцию к каждой строке матрицы. Один из аргументов функции принимает вектор. Я хотел бы применить первый элемент вектора к первой строке, второй элемент ко второй строке и т. Д.

Например:

set.seed(123)
df<-matrix(runif(100), ncol=10)

var2 <- c(1:10)

MYFUNC <- function(x, Var=NA){ 
  sum(x)/Var 
}

Я попробовал это:

apply(df, 1, function(x) MYFUNC(x, Var=var2))

Но это дает мне матрицу 10х10 с функцией, примененной к каждой комбинации строки и Вар, тогда как меня интересуют только диагональные элементы. Я также посмотрел вmapply функция, но я не уверен, как применить это в этом случае.

Любая помощь могла бы быть полезна.

Ответы на вопрос(2)

Ваш ответ на вопрос