我有一个非常棘手的问题,在这里似乎找不到任何类似的东西。
首先,是一个可重现的示例:
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])
}}
这个可重现的示例很简单,因为表格只有3x3,但是如果我们添加更多的分类变量,我们可能会得到一个非常大的矩阵,并且我希望能够自动化该过程以节省时间。
我还考虑过从表中提取值以创建
格式的数据框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
任何帮助将不胜感激,在此先感谢您。