我有一个 6 列 37 行的列联表数据矩阵。我需要应用卡方变换来为我提供行配置文件和列配置文件以进行对应分析。
不幸的是,有人告诉我我需要使用嵌套循环来转换数据并执行 CA(而不是在 R 中使用更明智的方式)。我获得了用于嵌套循环的结构:
transformed.data=data0
for (row.index in 1:nrow(data)) {
for (col.index in 1:ncol(data)) {
transfomed.data[row.index,col.index]=
"TRANSFORMATION"[row.index,col.index]
}
}
根据我对使用嵌套循环的理解,它将首先将我的“转换”应用于行,然后应用于列。
我想要对数据进行的转换以获取行配置文件是:
( X( ij ) / sum( X( i ) ) ) / sqrt( sum( X( j ) ) )
虽然我想对数据进行转换以获取列配置文件是:
( X( ij ) / sum( X( j ) ) ) / sqrt( sum( X( i ) ) )
我将在嵌套循环的最后一行输入什么作为“转换”,以使其输出我想要的配置文件转换。否则,如果我在这里错过了理解嵌套循环的意义,请描述它允许我做什么。
这是我的数据子集的代码:
matrix(c(15366,2079,411,366,23223,2667,699,819,31632,2724,717,1473,49938,3111,1062,11964)
,nrow=4,ncol=4,byrow=T)
所以单独使用这个子集,我希望第一行的行配置文件是:
0.002432689 0.0003291397 6.506803e-05 5.794379e-05
第一列的列配置文件为:
0.0009473414, 0.0132572344, 0.0572742202, 0.0132863528