#r #function #formula
#r #функция #формула
Вопрос:
здесь у меня есть формула, как на графике,
S — это матрица, как показано ниже
A B C D
A 0 3 10 5
B 3 0 12 8
C 10 12 0 11
D 5 8 11 0
N — это вектор, как показано ниже:
A B C D
60 80 90 100
Как построить функцию для выражения левой части числителя в R? (Нет необходимости учитывать t.)
Мой набор данных S составляет около 600 * 600.
Ответ №1:
Попробуйте это
AR <- function(S, N) {
P <- sum(N)
out <- (t(N) %*% S %*% N 2 * P) / (P * (P - 1))
dim(out) <- NULL
out
}
Вывод
> S # the diagonal of S MUST be all zeros.
A B C D
A 0 3 10 5
B 3 0 12 8
C 10 12 0 11
D 5 8 11 0
> N
A B C D
60 80 90 100
> AR(S, N)
[1] 6.413005