我想使用数字列中的值来创建对相同列号的引用我生成了一个包含整数的列,现在想用它来引用相同数字列中的值。第 9 列包含一个数字,指示第 10 列中的公式应引用哪一列。以下是一些无法正常工作的情况。



自动化和脚本回复:我想使用数字列中的值来创建对相同列号的引用当您将鼠标悬停在带有红色下划线的代码上时,会显示哪条错误消息?
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "Column 9",
Numeric,
Set Values( [1, 2, 3, 4, 5] )
);
New Column( "Column 10",
Expression,
Formula( Try( Column( :Column 9 ) ) )
)
没有错误:


如果您不想检索列 - 但想检索存储在列中的值,请使用作为列()而不是column():
稳健的列引用
...或者向Column() 添加行索引:
列(col)[row()]或列(col)[]
New Column( "Column 10b",
Character,
Formula( Try( Char( Column( :Column 9 )[Row()] ) ) )
)

除此之外,
- 请确保计算值与柱的建模类型相匹配。
第 1 列到第 5 列包含数字和字符。这就是我添加Char() 的原因。
- 柱子(。)将失败,列公式将终止。因此,请检查第 9 列中是否缺少索引
回复:我想使用数字列中的值来创建对相同列号的引用霍吉
谢谢,但是这些只是给我第 9 列中已有的值,我想查找第 9 列中枚举的不同列的值,这是否有意义?
回复:我想使用数字列中的值来创建对相同列号的引用结合这两种方法,让我们在第一步中检索列,并在第二步中检索值:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "column",
Expression,
Formula( Try( Column( Row() ), . ) ),
);
New Column( "value",
Character,
Formula( Try( Char( :column[Row()][Row()] ), "" ) ),
)
why :column[Row()][Row()]?
:柱子是第 9 列,
:column[row()]是此列特定行中的条目,例如Column("sex")
:column[row()][row()]是特定行中的条目,例如Column ("sex")

回复:我想使用数字列中的值来创建对相同列号的引用霍吉
很棒的补充!没什么好事之类的……
我现在需要对相对于第 9 列存储的最大值的每一列进行迭代操作。在这种情况下,i 值的正常添加并不自然适用。
clear symbols();
lim = Col Max(Column(8));
For (i=1, i<=lim, i++,
New Column( "Column 10b",
Character,
Formula( Try( Char( Column( :Column 9 )[Row()] ) ) )
));
回复:我想使用数字列中的值来创建对相同列号的引用
@SpannerHead写道:
在这种情况下,i 值的正常添加并不自然适用。
一个非常常见的问题:
在新列消息之外定义并在新列消息内部使用的变量:
-> JMP 中的表达式处理:提示和陷门
解决方案:查找变量并使用存储的值:
For each ({i}, 1::5,
Eval(Eval Expr(New Column( "col_"||char(i),
Character,
Formula( Try( Char( Column( Expr(i) )[Row()] ) ) )
))));
更强大:
For each ({i}, 1::5,
Eval(Eval Expr(New Column( "col_"||char(i),
Character,
Formula( Try( Char( Expr(Name Expr(As Column( i )) )) ) )
))));
从我在@jthi的帖子中看到它的第一天起,我就很欣赏 Name Expr(As Column(col)) 并尽可能地使用它。
通过从https://community.jmp.com/t5/Discussions/Using-numeric-objects-in-a-column-equation/mp/903966/highlight/true#M106273学习,我很高兴这种方法帮助我避免了许多陷阱。
作为列公式中的 Column(col)或列(col) ?太脆弱了!