Имея один вектор A = c(1,2,3,4,5)
, я могу написать
sapply(A, function(a) mean(A[-a]))
для вычисления пяти средних: среднее значение A без первого элемента, среднее значение A без второго элемента и т. Д.
Я хотел бы выполнять операции типа "оставь-один-один" с двумя или более векторами одновременно.Например, с B <- c(6,7,8,9,10)
я подумал, что мог бы набрать
myFunc <- function(a, b){return( c(mean(A[-a]), mean(B[-b])) )}
mapply(myFunc, A, B)
, но это вычисляет только однозначное значение A:
[,1] [,2] [,3] [,4] [,5]
[1,] 3.5 3.25 3 2.75 2.5
[2,] 8.0 8.00 8 8.00 8.0
и выводит строку8.0s для B. Что я делаю не так?