-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 に答える