用于单向分析的动态 Y 变量大家好你们好,
我正在尝试为单向分析编写一个动态 Y 变量的脚本,然后将平均值输出到一个组合表中。 这是正确的方法吗?
dt = Data Table ("Analysis");
ColNamesList = d1 << get column names (string );
For( i = N Items( ColNamesList ), i >= 1, i--,
OW = (dt << Oneway( Y( Column(ColNamesList) ),
X(:SITE),
Mean ( 1 ),
Automatic Recalc( 0 )
)) << Report;
);
dtCombined = Report( OW[1] )[Table Box( 1 )] << Make Combined Data Table;提前致谢 !
分析数据表脚本回复:用于单向分析的动态 Y 变量运行它:它适用于您的桌子吗?
如果是,这是正确的方法!
如果没有,请告诉我们您在哪里遇到了麻烦?
回复:用于单向分析的动态 Y 变量抱歉,我不小心点击了解决方案按钮。
该脚本没有提示任何错误。 但是,也没有图表被视为输出。
脚本日志仅显示可编写脚本。
回复:用于单向分析的动态 Y 变量亲爱的@XiangCD_MP_User ,我的脚本有几个问题。 如果我得到你的任务,它是通过 :site 对数据表的每个连续列进行单向分析,并用平均值保存数据表。
如果是这样,我会这样做:
或者,还有其他可能性,例如将所有内容放在一个“Fit Group”声明中。 最好的方法取决于你的脚本技能,以及它应该运行的确切环境。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
// dt = Data Table ("Analysis");
OW_lst = {};
ColNamesList = dt << get column names( string, "Continuous" );
// When using single report windows, you would need to collect the result table from each of them
/*
For( i = N Items( ColNamesList ), i >= 1, i--,
Insert Into( OW_lst, dt << Oneway( Y( Column( ColNamesList[i] ) ), X( :sex ), Means( 1 ), Automatic Recalc( 0 ) ) )
);
*/
// Generate new report window to collect all analyses
nw = New Window( "Oneway Collection",
hlb = H List Box(
For( i = N Items( ColNamesList ), i >= 1, i--,
// collect references to each analysis in OW_lst
Insert Into( OW_lst, dt << Oneway( Y( Column( ColNamesList[i] ) ), X( :sex ), Means( 1 ), Automatic Recalc( 0 ) ) )
)
)
);
// Message will collect all similar tables in one data table
dtCombined = Report( OW_lst[1] )[Table Box( 1 )] << Make Combined Data Table;
// Alternatively you would be able to get the same result w/o working with a list like follows
//(nw << XPATH( "//TableBox" ))[2] << Make Combined Data Table;回复:用于单向分析的动态 Y 变量@XiangCD_MP_User ,
您可以尝试使用分析>筛选菜单下的响应筛选。 您仍然可以将列名列表传递到 Y 变量占位符中。 响应筛选的输出将允许红色三角形中的选项保存每个 X 水平的平均值或具有每个 Y 平均值的 Pvalues 表。
此外,如果您找到与字符串匹配的所有列并将它们放入列表中(看起来就像您正在做的那样),您可以在 Response Screening 的 Y 变量中使用变量名称(使用 Eval())。 或者,您可以将它们分组到一个列组中,并在响应筛选中引用该列组。 实际上它会像你想要的那样循环,它是动态的。
就像是:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Probe.jmp" );
dt << Response Screening(
X( :Process ),
Y( Column Group( "Responses" ) ),
PValues Table on Launch( 1 ),
Save Means
);
这会输出每次比较的 p 值以及 Y 的平均值。