-1

我想将向量转换为转换矩阵。我有一个向量 t 并将其除以它的最大值以获得 0 和 1 之间的值。然后我将其制成一个矩阵

t <- c(22, 65, 37, 84, 36, 14, 9, 19, 5, 49)
x <- t/max(t)
y <- x%*%t(x)

我的问题是我希望矩阵 (y) 的列加起来为 1,即使其成为转换矩阵,但我不知道该怎么做。任何建议表示赞赏!

4

1 回答 1

2

sweep()是一个多功能的小函数,您可以在这里使用它来将每列除以其自己的总和:

yy <- sweep(y, MARGIN = 2, STATS = colSums(y), FUN = "/")

## Confirm that the columns of yy all sum to 1
colSums(yy)
##  [1] 1 1 1 1 1 1 1 1 1 1
于 2013-02-07T16:46:16.673 回答