从举报平台获取文本你好,
我一直在努力解决的问题是如何得到来自平台的*东西*。 在本例中,它是“线性拟合”下方的线性拟合方程。 “属性”和“显示树结构”菜单都显示不同的文本退出框,因此我尝试抓住它们并使用得到(平台无法识别,或者只是对象无法识别),并且获取文本。 两者都没有抓住我需要的文本。 有任何想法吗?
另一个问题是生成了 6 个报告,其中应该是 2 个,因为 summarise 在 :sex 中创建了一个唯一值列表,而这就是 for 循环迭代的次数。 报告也会针对这些值进行过滤。
Names default to here(1);
clear log();
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
summarize( gen_lst = by( dt:sex ) );
for( i = 1, i <= N Items( gen_lst ), i++,
// Create visualization, save to target
vis = eval expr( eval(
Bivariate(
Y( :weight ),
X( :height ),
Where( :sex == expr( gen_lst[i] ) )
)
) );
// Fit: Linear
vis << Fit Line( {Line Color( {255, 000, 000} )} );
// Tries to copy equation in "Linear Fit"
try( eqs_tmp1 = report(vis)["Linear Fit", TextEditBox(1)] << Get text );
try( eqs_tmp4 = report(vis)[TextEditBox(4)] << Get text );
try( print( eqs_tmp1 ) );
try( print( eqs_tmp4 ) );
);

自动化和脚本编写基础数据分析和建模数据探索和可视化视窗回复:从报告平台获取文本我认为应该是
Eval(Eval Expr(...
或者,您可以使用 By:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
vis = Bivariate( Y( :weight ), X( :height ), By( :sex ) );
vis << Fit Line( {Line Color( {255, 000, 000} )} );
(vis << XPath( "//OutlineBox[text()='Linear Fit']//TextEditBox" )) << get text;
回复:从报告平台获取文本感谢您的快速回复,Hogi!
备用代码根据我的喜好抓取了太多文本,如屏幕截图所示。我正在专门寻找方程式。
不过,感谢您发现我翻转了 eval 和 eval expr! 这样问题就彻底解决了! 我可以使用第一次或第二次 try() 来获取我正在寻找的方程。

回复:从报告平台获取文本在我的系统(v17.1)上:

嗯,我想知道什么会有所不同?
回复:从报告平台获取文本你的截图中的括号少了,对吧?
因此,获取文本直接通过管道传送到 vis,并返回完整的报告。
回复:从报告平台获取文本这里还有一些您可以使用的选项。 我要么使用这里的第一个选项,要么使用 XPath
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Summarize(gen_lst = by(dt:sex));
For(i = 1, i <= N Items(gen_lst), i++,
// Create visualization, save to target
vis = Eval(Eval Expr(Bivariate(Y(:weight), X(:height), Where(:sex == Expr(gen_lst[i])))));
// Fit: Linear
vis << Fit Line({Line Color({255, 000, 000})});
txt1 = Report(vis)[OutlineBox("Linear Fit"), Text Edit Box(1)] << get text; // I would use this or XPath
txt2 = Report(vis)["Linear Fit", Text Edit Box(1)] << get text;
txt3 = ((Report(vis)[OutlineBox("Linear Fit")] << Child) << child) << get text;
);