У меня довольно сложный вопрос, и я не могу найти ничего похожего здесь.
Во-первых, воспроизводимый пример:
ID code.X code.Y
1 a b
2 a a
3 b b
4 a a
5 c c
6 c a
7 a a
8 a b
9 c c
10 c c
У меня есть переменная ID и два столбца, содержащие классификационный код (a, b, c), и я создал таблицу 3x3 или матрицу непредвиденных расходов /кросс-табулирование с использованием
X <- table(code.X, code.Y)
X
code.Y
a b c total
¦-------------------
a ¦ 3 2 0 5
¦
code.Y b ¦ 0 1 0 1
¦
c ¦ 1 0 3 4
4 3 3 10
Я хочу иметь возможность использовать значения X [i, j] и итоги каждой строки и столбца на следующем шаге, где они будут вставлены в функцию.
Мой следующий шаг - создать новую матрицу, используя значения и итоги, показанные выше.Поэтому у меня будет другая матрица, где X [i, j] будет использовать значения из матрицы выше.
Я хочу иметь возможность использовать значения X [i, j] и подставить их в формулу для создания новой матрицы.Например, я могу разделить X [i, j] на сумму столбца или строки.Я думал о двух циклах: (прошу прощения за бессмысленный код, просто пытаюсь воспроизвести идею)
for i in length(levels(code.x)){
for j in length(levels(code.y)){
X2[i, j] = X[i,j] * margin(X[1, j])
}}
Этот воспроизводимый пример прост, поскольку в таблице только 3х3, но мы должны добавить больше классификационных переменныхмы могли бы получить очень большую матрицу, и я хочу иметь возможность автоматизировать процесс, чтобы сэкономить время в будущем.
Я также думал об извлечении значений из таблицы для создания фрейма данных в форме
ID Value
X[1, 1] 3
X[1, 2] 2
X[1, 3] 0
X[2, 1] 0
X[2, 2] 1
X[2, 3] 0
X[3, 1] 1
X[3, 2] 0
X[3, 3] 3
. Любая помощь будет принята с благодарностью, заранее спасибо.