将选定列用于新列中的公式你好,
我尝试生成一个脚本,我必须在其中选择一列。 通过此选择,我创建了一个新列,其中包含一个公式(带有选定的列)。 这是我的方法:
dt = Current Data Table ();
dt << New Table Variable( "Range", 2 );
New Window( "Select Column",
lb = Col List Box( all ), dt << New Table Variable( "Selected Column", lb <<get selected ),
Button Box( "Moving Average", dt <<New Column ("Movin Average", Numeric, Formula (:Range + "selected Column") )
));
我有两个问题:
1.如何通过选择生成列变量?
2. 如何在我的公式中使用这个变量? 对于“范围”(数字)是可能的,但对于选定的列(字符)则不是。
回复:在新列中使用选定列作为公式高吉姆,这是一个很棒的剧本。是否可以通过添加额外的公式按钮来创建额外的公式列(Col Mean() ...)?
回复:在新列中使用选定列作为公式谢谢!
回复:在新列中使用选定列作为公式该代码抱怨 Range 的值不是字符串。所以为了纠正这个问题,下面的代码通过使用 char() 函数来强制范围的值和返回的列名都是字符串,以确保它们是字符串。
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt << New Table Variable( "Range", 2 );
New Window( "Select Column",
lb = Col List Box(
Data Table( dt << get name ),
all,
min col( 1 ),
max col( 1 ),
dt << New Table Variable( "Selected Column", (lb << get selected )[1])
),
Button Box( "Moving Average",
Eval(
Substitute(
Expr(
dt << New Column( "Movin Average", Numeric, Formula( __formula__ ) )
),
Expr( __formula__ ), Parse( char(dt << get table variable( "Range" )) || " + :" || char((lb << get selected)[1]) )
)
)
)
);回复:在新列中使用选定列作为公式谢谢你!
如果我查看代码,它应该正是我正在寻找的。 但我收到一条错误消息:
参数应该是访问或评估 'Concat' 中的字符,错误参数((lb << get selected)[1]),dt << get table variable(“Range”)|| /*###*/" + :" || /*###*/(lb << 被选中
)[1] /*###*/
作为表变量,我得到了选择的列。 但是无法评估新列的公式。
我是否必须更改 JMP 版本中的任何首选项?
回复:在新列中使用选定列作为公式这是一个脚本的工作示例,它将执行我认为您的原始脚本尝试执行的操作。
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt << New Table Variable( "Range", 2 );
New Window( "Select Column",
lb = Col List Box(
Data Table( dt << get name ),
all,
min col( 1 ),
max col( 1 ),
dt << New Table Variable( "Selected Column", (lb << get selected )[1])
),
Button Box( "Moving Average",
Eval(
Substitute(
Expr(
dt << New Column( "Movin Average", Numeric, Formula( __formula__ ) )
),
Expr( __formula__ ), Parse( dt << get table variable( "Range" ) || " + :" || (lb << get selected)[1] )
)
)
)
);
现在我遇到的问题是了解一些项目。
- 为什么要为 Range 的值和新列的名称创建表变量?
- 你指定的公式真的是你想要的吗?将数字 2 添加到另一列的值中,不会给出任何类型的移动平均线。您真正想要做的是创建当前行的真实移动平均值以及最后两行的先前值吗?