我想将矢量转换为转换矩阵。 我有一个向量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,即使其成为转换矩阵,但我不知道该怎么做。任何建议表示赞赏!
答案 0 :(得分: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