r
行と列を持ち、0 ~ の整数c
を含む行列を考えてみましょう。次の例では、 、、および.v
v-1
r=4
c=2
v=6
L <- c(0,1,1,2,0,1,2,3)
(x <- matrix(L,nrow=4,ncol=2,byrow = TRUE))
## 0 1
## 1 2
## 0 1
## 2 3
目標は、次のようにr*c
(行)v
列の発生率行列を生成することです。
- 各行は元の行列の 1 つの要素に対応します (列優先順、つまり、この例では 4 行目が に対応し
x[4,1]
、5 行目が に対応しx[1,2]
ます) - 各要素の上と下の「隣人」を見つけ、行列の上から下に (循環的に) ラップします。の各値の隣接要素の数を数えます
v
。
たとえば、行列 ( x[1,1]
) の最初の要素には、隣接する1
(下) と2
(「上」、つまり、列の下部にラップアラウンドがあります。したがって、行 1 の列 2 と列 3 に 1 を入力し、対応する要素に一致させます。0:(v-1)
行の残りはゼロに設定されます。
rownames 0 1 2 3 4 5
[1] 0 1 1 0 0 0
次の要素 ( x[2,1]
) は0
両側 (上下) にあるため、最初の列 (0 に対応) は 2 に設定され、残りの要素は 0 に等しくなります。
[2] 2 0 0 0 0 0
上記の例の完全なマトリックスは次のとおりです。
rownames 0 1 2 3 4 5
[1] 0 1 1 0 0 0
[2] 2 0 0 0 0 0
[3] 0 1 1 0 0 0
[4] 2 0 0 0 0 0
[5] 0 0 1 1 0 0
[6] 0 2 0 0 0 0
[7] 0 0 1 1 0 0
[8] 0 2 0 0 0 0
行の合計はそれぞれ 2 です。