我正在寻找一种方法来对一组 1000 行左右的数据进行间隙和重叠分析。数据是团队将每个功能的测试覆盖率排名为 1、2 或 3,分数。我想寻找没有组将其评分为 1 的行之间的差距,并显示多个组的评分为 1 的位置。数据表的快照如下。
| 特征 # | FVT | 电动汽车 | 无级变速器 | MSV | GQ | 证书 | 硬件 | 聚乙烯 | MFG测试 | 偏微分方程 | 中医/FAE? |
| 1 | 1 | | 2 | 3 | | 3 | 1 | 2 | 2 | | |
| 2 | 1 | | 2 | 3 | | 3 | 1 | 2 | 2 | | |
| 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
| 4 | 3 | 3 | 3 | 3 | 3 | 3 | 2 | 3 | 3 | 3 | 3 |
| 5 | 1 | | 2 | 2 | | 3 | 3 | 2 | 2 | | |
| 6 | 1 | | 2 | 2 | | 3 | 3 | 2 | 2 | | |
| 7 | 1 | | 2 | 2 | | 3 | 3 | 2 | 2 | | |
| 8 | 1 | | 2 | 2 | | 3 | 3 | 2 | 2 | | |
我不确定你在找什么,但这是我写的一个小脚本,它产生我认为你想要的结果

Names Default To Here( 1 );
dt = Data Table( "MuMover Example" );
colNames = dt << get column names( continuous, string );
Remove From( colNames, 1, 1 );
Remove From( colNames, -2, 2 );
columnsWithNoOnes = {};
For( i = 1, i <= N Items( colNames ), i++,
Summarize( dt, byGroup = By( colNames[i] ) );
If( Contains( byGroup, "1" ) == 0,
Insert Into( columnsWithNoOnes, colNames[i] )
);
);
featureWithMultipleOnes = {};
countOfMutipleOnes = {};
For( i = 1, i <= N Rows( dt ), i++,
temp = Loc( dt[i, Index( 2, 10 )], 1 );
If( N Rows( temp ) > 1,
Insert Into( featureWithMultipleOnes, i );
Insert Into( countOfMutipleOnes, N Rows( temp ) );
);
);
New Window( "Results",
H List Box(
Outline Box( "Groups with No 1's",
Table Box( String Col Box( "Group", colNamesWithNoOnes ) )
),
Spacer Box( size( 15, 0 ) ),
Outline Box( "Features With Multiple 1's",
Table Box(
Number Col Box( "Feature", featureWithMultipleOnes ),
Number Col Box( "Count", countOfMutipleOnes )
)
)
)
);
这是一个计算你想要的公式

If( Row() == 1,
colNames = Current Data Table() << get column names( continuous, string );
Remove From( colNames, 1, 1 );
Remove From( colNames, -2, 2 );
);
display = "";
For( i = 1, i <= N Items( colNames ), i++,
If( Row() == 1,
colNames = Current Data Table() << get column names( continuous, string );
Remove From( colNames, 1, 1 );
Remove From( colNames, -2, 2 );
);
display = "";
For( i = 1, i <= N Items( colNames ), i++,
cname = colNames[i];
Eval( Parse( Eval Insert( "If( ^cname^ == 1, display = display || \!" \!" || colNames[i] );" ) ) );
);
Trim( display );
);
If( display == "",
display = "Gap"
);
Trim( display );