用于将公式转换为其结果的 JSL你好,
我有以下jsl代码
dt << New Column( "I (%)", (:Mean * 100) );
它采用一列(平均值),乘以 100 并使用公式创建一个名为 I(%) 的新列。
我不想要公式,只想要新列中的计算结果。 我怎样才能做到这一点?
非常感谢。
脚本回复:用于将公式转换为其结果的 JSL非常感谢。回复:用于将公式转换为其结果的 JSL谢谢! 非常清楚。回复:用于将公式转换为其结果的 JSL非常感谢,非常有用。回复:用于将公式转换为其结果的 JSL这可能有点离题,我可以创建不同的帖子来进一步讨论这个问题......
即使文档是设置每个值的内容(JMP 文档并不总是恰到好处......) 我觉得这是处理此类案件的最简单方法。 您可以通过“设置每个值”轻松使用复杂的“公式”,而不必担心以后会删除公式。 使用 Values() 计算可能会变得有点困难,请参阅我的示例(我绝对不精通 JSL 矩阵,因此很可能有更简单的方法来完成我在示例中所做的事情)。
带有公式的示例,设置每个值和值:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//With formulas
newCol = dt << New Column("Formula_simple", Numeric, Continuous, Formula(:height*:weight));
newCol << Delete Formula;
newCol = dt << New Column("Formula_ColMin", Numeric, Continuous, Formula(:height*ColMin(:weight, :sex)));
newCol << Delete Formula;
//With Set Each Value
newCol = dt << New Column("SetEach_simple", Numeric, Continuous, Set Each Value(:height*:weight));
newCol = dt << New Column("SetEach_ColMin", Numeric, Continuous, Set Each Value(:height * ColMin(:weight, :sex)));
//With Values
newCol = dt << New Column("Values_simple", Numeric, Continuous, Values((:height << get values) :*</img> (:weight<< get values)));
newCol = dt << New Column("Values_ColMin", Numeric, Continuous, Values(
Summarize(exg = By(:sex), exm = Min(:weight)); //get min values by group
m_val = J(N Rows(dt),1,1);//matrix for values
height_vec = :height << get values;
For(i = 1, i <= N Items(exg), i++, //loop to "fill" matrix for values
tempRows = Loc(:sex << get as matrix, exg[i]);
m_val[tempRows] = height_vec[tempRows] * exm[i];
);
m_val;
));Set Each Value 在幕后做了什么,因为它看起来工作得很好? 是否应该更新文档以包含此行为或为此创建的新功能? 如果要更改“设置每个值”行为,它可能会破坏人们拥有的很多脚本。
回复:用于将公式转换为其结果的 JSL该行为是记录的 << 设置每个值消息的预期目的。
回复:用于将公式转换为其结果的 JSL更酷! 我假设每个值都必须设置为相同的值。
回复:用于将公式转换为其结果的 JSLHee 是一个使用 Set Each Value 的简单示例
names default to here(1);
dt=open("$SAMPLE_DATA\big class.jmp");
dt << new column("times100", numeric, continuous, set each value(:height*100));

回复:用于将公式转换为其结果的 JSL在这种情况下,该消息没有帮助。 它用于将目标列中的每一行设置为相同的常量值。

回复:用于将公式转换为其结果的 JSL凉爽的!
回复:用于将公式转换为其结果的 JSL你根本不需要公式。 我建议在编写脚本时不要使用列公式,除非您希望值在脚本完成后动态更改。 所以你的案子可以这样解决:
dt << New Column( "I (%)", Numeric, Continuous, Values( (:Mean << Get Values) * 100) );
回复:用于将公式转换为其结果的 JSL尝试使用 <回复:用于将公式转换为其结果的 JSL
wait(3) 只是为了让您可以观看它; <
您也可以使用公式编辑器清除公式以达到相同的效果。
回复:用于将公式转换为其结果的 JSLNamesDefaultToHere(1);
// Sample table
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Add a formula column
dt << NewColumn("BMI", Numeric, Continuous, Formula(:weight/(:height^2)));
// Make sure the formula is run
dt << runFormulas;
// Wait a little, then remove the formula
Wait(3);
Column(dt, "BMI") << deleteFormula;