回复:脚本中的列切换器功能仅报告第一个变量我不确定问题是什么。 我的例子似乎工作正常(或者我可能遗漏了什么)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Job Satisfaction.jmp");
obj = dt << Fit Model(
Y(:Satisfaction_Avg),
Effects(
:Support_L, :Goal_L, :Work_L, :Interact_L, :Person_C,
:Interact_L * :Person_C
),
Personality( "Proportional Hazard" ),
Emphasis("Effect Leverage"),
Run(
:Satisfaction_Avg << {Summary of Fit(1), Analysis of Variance(1),
Parameter Estimates(1), Scaled Estimates(0), Plot Actual by Predicted(1),
Plot Regression(0), Plot Residual by Predicted(1),
Plot Studentized Residuals(0), Plot Effect Leverage(1),
Plot Residual by Normal Quantiles(0), Box Cox Y Transformation(0)}
)
);
col_switcher = obj << Column Switcher(
:Person_C,
{:Person_C, :Intra_C, :Inter_C, General_S}
);


回复:脚本中的列切换器功能仅报告第一个变量附录:我希望 Column Switcher 函数可以为每个变量生成新的 Effect Summary 表。该脚本适用于第一个变量,然后您可以手动滚动列切换器以查看其他变量。我不想手动滚动列表。这可能吗?
回复:脚本中的列切换器功能仅报告第一个变量谢谢 jthi 的快速回复。我将你的脚本合并到我的脚本中并遇到了同样的问题。输出表仅包含 Two_Deoxyuridine 的结果,但不包含开关列表中的其他变量。我确实运行了您的脚本并且它按预期工作。
我对这个脚本哪里出了问题有什么想法吗?
安娜贝尔
obj = dt << Fit Model(
Y( :dthtt ),
Effects(
:race1c, :PC1, :PC2, :PC3, :age2c, :gender1, :bmi2c.x, :chol2.x, :curalc2.x, :pkyrs2c.x, :dbp2c.x,
:sbp2c.x, :creatin1.x, :glucos2c.x, :APOE_INT, :Two_Deoxyuridine_INT,
:APOE_INT * :Two_Deoxyuridine_INT
),
Personality( "Proportional Hazard" ),
Emphasis( "Effect Leverage" ),
Censor( :dth ),
Censor Code( "0" ),
Run(
:dthtt << {Summary of Fit( 1 ), Analysis of Variance( 1 ), Parameter Estimates( 1 ),
Scaled Estimates( 0 ), Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 1 ), Plot Studentized Residuals( 0 ), Plot Effect Leverage( 1 ),
Plot Residual by Normal Quantiles( 0 ), Box Cox Y Transformation( 0 )}
)
);
ColumnSwitcherObject = obj << Column Switcher(
:Two_Deoxyuridine_INT,
{:One_5_Anhydroglucitol_INT, :Two_Deoxyuridine_INT,
:Two_Hydroxybutyric acid_INT, :Two_Hydroxyglutaric acid_INT,
:Two_ketoisovaleric acid_INT, :Three_Hydroxybutyric acid_INT, :Five_MTHF_INT, 回复:脚本中的列切换器功能仅报告第一个变量我在进步!我的主要目标是在每次列切换后获得一个 Effect Wald Test 数据表。 最终我将连接这些表。下面的代码自动启动列切换器(这可以在日志中看到)并生成 Effect Wald Test 数据表,但仅针对列切换器中的第一个条目。关于切换时如何从每列获取 Effect Wald Test 数据表的任何想法?
obj = dt << Fit Model(
Y( :dthtt ),
Effects(
:race1c, :PC1, :PC2, :PC3, :age2c, :gender1, :bmi2c.x, :chol2.x, :curalc2.x, :pkyrs2c.x, :dbp2c.x,
:sbp2c.x, :creatin1.x, :glucos2c.x, :APOE_INT, :One_5_Anhydroglucitol_INT,
:APOE_INT * :One_5_Anhydroglucitol_INT
),
Personality( "Proportional Hazard" ),
Censor( :dth ),
Censor Code( "0" ),
Run(
:dthtt << {Summary of Fit( 1 ), Analysis of Variance( 1 ), Parameter Estimates( 1 ),
Scaled Estimates( 0 ), Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 1 ), Plot Studentized Residuals( 0 ), Plot Effect Leverage( 1 ),
Plot Residual by Normal Quantiles( 0 ), Box Cox Y Transformation( 0 )}
)
);
ColumnSwitcher = obj << Column Switcher(
:One_5_Anhydroglucitol_INT,
{:One_5_Anhydroglucitol_INT, :Two_Deoxyuridine_INT, :Two_Hydroxybutyric acid_INT,
:Two_Hydroxyglutaric acid_INT, :Dummy variable_INT}
);
pre = Function( {currentColumn, nextColumn, switcher},
Print(
"Before switch: " || (currentColumn << get name) || " >> " || (nextColumn << get name) ||
" [Column Switcher] current: " || (columnSwitcher << Get Current)
);
If( nextColumn << get name == "Dummy variable_INT",
0,
1
);
);
post = Function( {previousColumn, currentColumn, switcher},
Print(
"After switch: " || (previousColumn << get name) || " >> " || (currentColumn << get name) ||
" [Column Switcher] current: " || (columnSwitcher << Get Current)
)
);
columnSwitcher << Make Column Switch Handler( pre, post );
ColumnSwitcher << Set Script(
obj = Data Table( "MESA 2018Events_Exam2Main_Proteomics_Metabolomics_MARCH 13 2023" ) <<
Fit Model(
Y( :dthtt ),
Effects(
:race1c, :PC1, :PC2, :PC3, :age2c, :gender1, :bmi2c.x, :chol2.x, :curalc2.x, :pkyrs2c.x, :dbp2c.x,
:sbp2c.x, :creatin1.x, :glucos2c.x, :APOE_INT, :One_5_anhydroglucitol_INT,
:APOE_INT * :One_5_anhydroglucitol_INT
),
Personality( "Proportional Hazard" ),
Censor( :dth ),
Censor Code( "0" ),
Run( Likelihood Ratio Tests( 0 ) ),
Column Switcher(
:One_5_anhydroglucitol_INT,
{:One_5_Anhydroglucitol_INT, :Two_Deoxyuridine_INT, :Two_Hydroxybutyric acid_INT,
:Two_Hydroxyglutaric acid_INT, :Dummy variable_INT}
)
);
Report( obj )["Effect Wald Tests", Table Box( 1 )] << Make Into Data Table;
obj << Close Window;
);
ColumnSwitcher << Run;
Wait( 5/*seconds, while it animates*/ );回复:脚本中的列切换器功能仅报告第一个变量你好
我解决了我的问题并附上了脚本。一个技巧是在主表中放置一个虚拟变量列,并将其放置在列开关的最终变量之后。这允许列开关正常工作。我的下一步是连接所有 Effect Wald Tests 数据表,我认为这应该不难。我希望这个脚本对社区中的其他人有用。
安娜贝尔
回复:脚本中的列切换器功能仅报告第一个变量你好,
我已经为列切换器函数提供了最终脚本以提供串联的数据表。我确实从 JMP 支持那里得到了一些关于如何连接表格的帮助。 希望这对其他人有帮助。
安娜贝尔
脚本中的列切换器函数仅报告第一个变量你好,
以下脚本返回一个输出报告,其中包含用于切换的第一个变量 (Two_deoxyuridine),但不返回切换列表中的其他变量。我在脚本索引、YouTube 视频、JMP 社区以及阅读跳转到 JMP 中的章节中寻找了解决方案。解决办法是插入一个For循环吗?我正在使用 JMP17。
感谢任何和所有的帮助,
安娜贝尔
obj = dt << Fit Model(
Y( :dthtt ),
Effects(
:race1c, :age2c, :gender1, :APOE_INT, :Two_Deoxyuridine_INT,
:APOE_INT * :Two_Deoxyuridine_INT
),
Personality( "Proportional Hazard" ),
Censor( :dth ),
Censor Code( "0" ),
Run( Likelihood Ratio Tests( 0 ) )
);
ColumnSwitcherObject = obj << Column Switcher(
:Two_Deoxyuridine_INT,
{:One_5_Anhydroglucitol_INT, :Two_Deoxyuridine_INT, :Two_Hydroxybutyric acid_INT,
:Two_Hydroxyglutaric acid_INT}
);自动化和脚本编写质量和工艺工程