1
我有一個n x p
矩陣,看起來像這樣:「角化」矩陣中的每一行
n = 100
p = 10
x <- matrix(sample(c(0,1), size = p*n, replace = TRUE), n, p)
我想沿着第一維A
,其k
個項創建n x p x p
陣列是包含p x p
對角矩陣x[k,]
的元素。 R中最有效的方法是什麼?我正在尋找一種使用outer
(或其他矢量化方法)的方法,而不是apply
函數之一。
解決方案使用lapply
:
A <- aperm(simplify2array(lapply(1:nrow(x), function(i) diag(x[i,]))), c(3,2,1))
我正在尋找的東西比這更有效。
感謝。