这涉及将SAS中的双向ANOVA程序转换为Python的项目.
我周四开始尝试学习这门语言,所以我知道我还有很大的提升空间.如果我遗漏一些明显的东西,请务必告诉我.我还没有Sage运行起来,也没有numpy,所以现在,这些都是非常普通的Python 2.6.1.(便携式)
主查询:需要一个好的集列表解析可以由因子B,整体,并且在因子A&B(AXB)的每个电平的基团通过因子A提取样本的列表中的数据以列表,的.
完成一些工作后,数据采用以下形式(3层嵌套列表):
反应[A] [B] [n]的
(意思是:〔A1 [B1 [N1,...,N] ... [BB [N1,... NN]],...,AA [B1 [N1,...,N] .. .[bB [n1,... nN]]]希望这很清楚.)
我的例子中的因子水平:A = 3(0-2),B = 8(0-7),N = 8(0-7)
byA= [[a[i] for i in range(b)] for a[b] in response]
Run Code Online (Sandbox Code Playgroud)
(有人可以解释为什么这句法的作品?我偶然到它想看看解析器会接受.我还没有看到连接到其他地方行为的语法,但它是非常好的.关于该主题网站或书籍的任何好的链接编辑:运行之间变量的持久性解释了这种奇怪.它不起作用.)
byB=lstcrunch([[Bs[i] for i in range(len(Bs)) ]for Bs in response])
Run Code Online (Sandbox Code Playgroud)
(值得注意的是,zip(*response)几乎可以做我想要的.上面的版本实际上并没有工作,我记得.我还没有通过仔细的测试.)
byAxB= [item for sublist in response for item in sublist]
Run Code Online (Sandbox Code Playgroud)
(从Alex Martelli在本网站上的回复中窃取.再次有人可以解释为什么?列表理解语法在我读过的文本中没有得到很好的解释.)
ByO= [item for sublist in byAxB for item in sublist]
Run Code Online (Sandbox Code Playgroud)
(显然,我只是重复使用前面的理解,因为它做了我需要的.编辑:)
我想这些落得相同的数据类型,所讨论通过由因子环至少当,ST相同的平均/和/ SS …