使用数据集列进行迭代



我有一个包含30多列的数据集,我想计算它们之间的相关性(最好将结果放入相关性矩阵中(。有没有办法创建一个循环,为所有可能的列对运行CORRELATION((函数?

一个更清楚的例子:给定一个由y、x1、x2和x3列组成的数据集,我想创建下表,其中包含每个列之间的相关性:

相关矩阵

以下是如何实现这一点的示例:

filelayout := RECORD
UNSIGNED myid;
REAL y;
REAL x1;
REAL x2;
REAL x3;
END;
GFred := DATASET([ {1, 1.1, 2.2, 3.3, 4.4},
{2, 5, 6, 7, 8},
{3, 9, 10, 11, 12},
{4, 13.1, 14.2, 15.3, 16.4}],
filelayout);

SetVals := [GFred.y,GFred.x1,GFred.x2,GFred.x3];
OutRecCnt := COUNT(SetVals);
OneRec := DATASET([{0}],{UNSIGNED1 h});
filelayout XF(OneRec L, INTEGER C) := TRANSFORM
SELF.myid := C;
SELF.y := CORRELATION(GFred,SetVals[C],y);
SELF.x1 := CORRELATION(GFred,SetVals[C],x1);
SELF.x2 := CORRELATION(GFred,SetVals[C],x2);
SELF.x3 := CORRELATION(GFred,SetVals[C],x3);
END;
P := NORMALIZE(OneRec,OutRecCnt,XF(LEFT,COUNTER));
OUTPUT(P);  

相关内容

  • 没有找到相关文章

最新更新