-1
我想将矢量转换为转换矩阵。 我有一个向量t和由它的最大值来获得0和1之间的值除以这个然后我在此为一个矩阵R转换矩阵
t <- c(22, 65, 37, 84, 36, 14, 9, 19, 5, 49)
x <- t/max(t)
y <- x%*%t(x)
我的问题是我想要的矩阵(Y)到的列加起来就是1,即将它变成一个转换矩阵,但我不知道该怎么做。任何建议感激!
我想将矢量转换为转换矩阵。 我有一个向量t和由它的最大值来获得0和1之间的值除以这个然后我在此为一个矩阵R转换矩阵
t <- c(22, 65, 37, 84, 36, 14, 9, 19, 5, 49)
x <- t/max(t)
y <- x%*%t(x)
我的问题是我想要的矩阵(Y)到的列加起来就是1,即将它变成一个转换矩阵,但我不知道该怎么做。任何建议感激!
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
@这确实让列加起来之一,但它也导致行的每个元素具有相同的值,即 '[1] [2] [3] [4] [5] [1,] 0.06470588 0.06470588 0.06470588 0.06470588 0.06470588 [2,1] 0.19117647 0.19117647 0.19117647 0.19117647 0.19117647' 有没有办法为这些元素获取不同的值? – soshea