需要基于其他列上的选择性条件的列大家好,
我正在寻找测量过程中失败的百分比。 我的要求和示例数据如下。
这里有什么帮助吗?
谢谢,
脚本回复:需要一个基于其他列的选择性条件的列这里最棘手的部分是定义一个适当的分组列(参见 Avg_Time 并与 Sample --> Group 连接)。
这类似于与 Sample 连接的“计数”。
如果我需要计算要求,我会按照“结果”列中的表格所示进行。 在幕后,它试图在每一行中找到:属于同一组的所有行,并在“组中的测量”列中显示测量点。
详情请见附表。

回复:需要一个基于其他列的选择性条件的列嗨,乔治,
在表格列公式中似乎工作正常。 但我无法将其制作成脚本。 在也尝试了基于 For 循环和不同列的类似方法,但我无法生成测量模式以获得最终结果。 这是我正在尝试的脚本 -
/////////////////////////////////////////////////////////////////
dt = Current Data Table();
dt << New Column( "Pattern0",
Expression,
(row_index_lst = {} ; row_Time_A = :Time_A ; row_Sample = :Sample ; threshold = 60 * 15 ;
For Each Row(
If( Abs( :Time_A - row_Time_A ) < threshold & :Sample == row_Sample,
Insert Into( row_index_lst, Row() )
)
));
(:Measurement << get values)[row_index_lst];
);
///////////////////////////////////////////
// similar approach but based on different column and For loop--
//////////////////////////////////////////////////////
dt << New Column( "Pattren",
Expression,
For( i = 1, i <= N Rows( dt ), i++,
Row_List = {};
If(
:Count == Lag( :Count, -1 ) & :Sample == Lag( :Sample, -1 ) | :Count == Lag( :Count, 1 ) &
:Sample == Lag( :Sample, 1 ),
Insert Into( Row_List, Row() )
);
(:Measurement << get values)[Row_List];
)
);
/////////////////////////////////////////////////////////////
两者都只给出空列。 任何建议如何将您的公式转换为脚本?
再次感谢。
回复:需要一个基于其他列的选择性条件的列我不确定你要做什么。
如果您想将该计算添加到当前数据表中,下面的代码将起作用。 您需要将该计算放入“Formula()”中。
如果您有一个列并且想要编写脚本,最好的方法总是从表格的红色小三角菜单中复制表格脚本。 在那里您可以获取并查看脚本,如何通过脚本生成表(或列)。
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Pattern",
Expression,
"None",
Formula(
(row_index_lst = {} ; row_Time_A = :Time_A ; row_Sample = :Sample ; threshold = 60 * 15 ;
For Each Row(
If( Abs( :Time_A - row_Time_A ) < threshold & :Sample == row_Sample,
Insert Into( row_index_lst, Row() )
)
));
(:Measurement << get values)[row_index_lst];
),
Set Display Width( 232 )
);