我有6列37行的列联表数据矩阵。 我需要应用Chi平方变换来为我提供Row配置文件和Column配置文件以进行对应分析。避免R中嵌套循环的数据转换
不幸的是,我被告知我需要使用嵌套循环来转换数据并执行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)/总和(X(我)))/SQRT(SUM(X(Ĵ)))
当我想上的数据得到列配置文件完成的改造是:
( X(IJ)/总和(X(Ĵ)))/SQRT( SUM(X(我)))
我会为我的“TRANSFO进入什么RMATION“在嵌套循环的最后一行中,让它为配置文件输出我想要的转换。否则,如果我没有理解这里的嵌套循环的要点,请描述它会允许我做什么。
这是我的数据子集的代码:
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
你可以添加一些样本数据,使您的问题[重复性(HTTP:/ /stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)?输入数据集和您的预期结果将是必要的。此外,您是否搜索过构建函数?谷歌的第一次打击给了我[这](http://www.statmethods.net/advstats/ca.html)。 – Chase
谢谢Chase,我会在第一篇文章中添加一些示例数据。关于这个任务的第二个问题,我必须首先通过变换数据(我坚持的那一点)并对其做一个PCA来逐步进行对应分析,然后通过对角线做更合理的方法(原始数据)和ca(原始数据) – Confused
听起来像功课吗?几条建议。 1)你不需要任何for循环,2)如果你使用'colSums()'和'rowSums()'3),当你的公式失败时,你的公式可以变得更容易,你可以看看函数的源代码看看其他作者如何解决这个相同的问题。为此,在控制台中输入没有parens的函数名称。这*可以*是与上述信息的单行功能。 – Chase