为什么 Parse() 添加额外的空格? 以及如何解决这个问题?大家好,
我正在努力解决如何解决 Parse() 添加额外空格的问题,因为它会干扰我的代码的评估。
我有一个数据表,其中有一个感兴趣的列,其名称类似于“AA BBBB CCC(dd)”,并且我正在进行评估,我想模拟我所做的拟合的估计。 我执行此操作的代码部分如下:
Eval(
Parse(
"\[report_of_interest[Number Col Box( 8 )] << Simulate(
NBSnum,
Random Seed( RSnum ),
Out( ]\"
|| YCols[1] || "\[ ),
In( :Simulated Y )
);]\"
)
);
这在大多数情况下都非常有效,但是 Parse() 命令在解析变量 YCols[1] 时会添加额外的空格,并且当它这样做时,Simulate 平台会认为该列不存在,因为它正在寻找名称有额外的空格。 当我评估 YCols[1] 时,我得到的列名称如上所示:“AA BBBB CCC(dd)”。 但是,当我 Parse(YCols[1]) 时,Eval() 运行的实际代码使用的列的名称如下所示:“AA BBBB CCC( d - d )”,这不是正确的列名称是因为 Parse() 在括号和字母“d”之间添加了额外的空格,以及在“-”短划线字符周围添加了额外的空格。 这是当我仅运行上面代码的 Parse() 部分时嵌入日志中的输出:
report_of_interest[编号列框( 8 )] << 模拟(
NBSnum,
随机种子(RSnum),
输出( AA BBB CCC( d - d ) ),
In( :模拟 Y )
)
有没有办法解决这个问题,或者有另一种方法来构建用于解析的字符串,而不会添加额外的空格?
我什至尝试了以下方法来构建用于解析的字符串,但这也导致模拟平台寻找带有额外空格的列名称。
str = Eval Insert(
"report_of_interest[Number Col Box( 8 )] << Simulate(
NBSnum,
Random Seed( RSnum ),
Out("
);
str2 = Eval Insert( " ),
:Simulated Y )
)" );
Eval( Parse( str || ":" || Char( Eval( YCols )[1] ) || str2 ) );我知道 JSL 不关心额外的空格,但 JMP 关心列名称。
任何想法/想法都非常感激。
谢谢!,
DS
自动化和脚本编写基础数据分析和建模数据探索和可视化视窗回复:为什么 Parse() 添加额外的空格? 以及如何解决这个问题?尝试在列名称周围添加“”n
Names Default To Here(1);
YCols= {"AA BBBB CCC(d-d)", "b"};
Parse(
"\[report_of_interest[Number Col Box( 8 )] << Simulate(
NBSnum,
Random Seed( RSnum ),
Out( "]\"
|| YCols[1] || "\["n ),
In( :Simulated Y )
);]\"
);回复:为什么 Parse() 添加额外的空格? 以及如何解决这个问题?你好@jthi ,
就这样做到了!
谢谢!,
DS
回复:为什么 Parse() 添加额外的空格? 以及如何解决这个问题?在这种情况下你应该能够避免使用 Parse (如果你愿意的话)
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("height+weight", Numeric, Continuous, Formula(
:height + :weight
));
dist = dt << Distribution(Continuous Distribution(Column(:height)));
ncb = Report(dist)[OutlineBox("Summary Statistics"), Number Col Box(1)];
mycol = "height+weight";
Eval(EvalExpr(
ncb << Simulate(
20,
Random Seed(1),
Out(:height),
In(Expr(NameExpr(AsColumn(dt, mycol))))
)
));
您可以看到,如果运行 EvalExpr() 部分,列名称将被内置到“height+weight”n 中
ncb << Simulate(20, Random Seed(1), Out(:height), In(:"height+weight"n))