Jak obliczyć następujące skomplikowane sumowanie w R? [Zamknięte]
Nov 26 2020
a1=c(1,2,3, 4)
a2=c(4,5,6, 7)
a3=c(7,8,9,10)
x <- cbind(a1, a2, a3)
y <- c(1,5,7,9)
z<-c(2,3,5)
Chcę obliczyć następujące podsumowanie:
Odpowiedzi
1 BenjaminChristoffersen Nov 26 2020 at 14:54
Możesz:
diag(crossprod(x, drop(x %*% z) - x * rep(z, each = NROW(x))))
#R> [1] 630 1080 756
lub sapply
/ vapply
wersja pętli ekoam pokazuje w komentarzu:
vapply(seq_along(z), function(j) drop(x[, j] %*% (x[, -j] %*% z[-j])),
numeric(1))
#R> [1] 630 1080 756