<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Overlap / Gap Analysis by Row in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/Overlap-Gap-Analysis-by-Row/m-p/447246#M69405</link>
    <description>&lt;P&gt;Here is other solution using matrices (could be turned into formula also):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here(1);

dt = New Table("Untitled",
	Add Rows(8),
	Compress File When Saved(1),
	New Column("Feature #", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 5, 6, 7, 8])),
	New Column("FVT", Numeric, "Continuous", Format("Best", 12), Set Values([1, 1, 3, 3, 1, 1, 1, 1])),
	New Column("EVT", Numeric, "Continuous", Format("Best", 12), Set Values([., ., 3, 3, ., ., ., .])),
	New Column("CVT", Numeric, "Continuous", Format("Best", 12), Set Values([2, 2, 3, 3, 2, 2, 2, 2])),
	New Column("MSV", Numeric, "Continuous", Format("Best", 12), Set Values([3, 3, 3, 3, 2, 2, 2, 2])),
	New Column("GQ", Numeric, "Continuous", Format("Best", 12), Set Values([., ., 3, 3, ., ., ., .])),
	New Column("Cert", Numeric, "Continuous", Format("Best", 12), Set Values([3, 3, 3, 3, 3, 3, 3, 3])),
	New Column("HW", Numeric, "Continuous", Format("Best", 12), Set Values([1, 1, 3, 2, 3, 3, 3, 3])),
	New Column("PE", Numeric, "Continuous", Format("Best", 12), Set Values([2, 2, 3, 3, 2, 2, 2, 2])),
	New Column("MFG Test", Numeric, "Continuous", Format("Best", 12), Set Values([2, 2, 3, 3, 2, 2, 2, 2])),
	New Column("PDE", Numeric, "Continuous", Format("Best", 12), Set Values([., ., 3, 3, ., ., ., .])),
	New Column("TCM / FAE?", Numeric, "Continuous", Format("Best", 12), Set Values([., ., 3, 3, ., ., ., .]))
);

col_names = Remove(dt &amp;lt;&amp;lt; Get Column Names("String"), 1); //drop feature
all_ones = dt[0, 2::N Cols(dt)] == 1; //print this 
dt &amp;lt;&amp;lt; New Column("Summary", Character, &amp;lt;&amp;lt; Set Each Value(
	teams = Loc(all_ones[Row(), 0]);
	If(N Items(teams) &amp;gt; 0,
		Concat Items(col_names[teams], " ")
	, "Gap"
	)
));&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Some explanation:&lt;/P&gt;&lt;P&gt;&lt;CODE class=" language-jsl"&gt;col_names = Remove(dt &amp;lt;&amp;lt; Get Column Names("String"), 1);&lt;/CODE&gt;&amp;nbsp;get team names&lt;/P&gt;&lt;P&gt;&lt;CODE class=" language-jsl"&gt;all_ones = dt[0, 2::N Cols(dt)] == 1;&lt;/CODE&gt;Get values in datatable to matrix. If cell value is 1 set it as 1, if it is missing leave as missing and other values will become 0&lt;/P&gt;&lt;P&gt;&lt;CODE class=" language-jsl"&gt;teams = Loc(all_ones[Row(), 0])&lt;/CODE&gt;&amp;nbsp;For current Row() get indices for columns which have 1&lt;/P&gt;&lt;P&gt;&lt;CODE class=" language-jsl"&gt;If(N Items(teams) &amp;gt; 0, Concat Items(col_names[teams], " ") , "Gap")&lt;/CODE&gt;&amp;nbsp;Use col_teams[teams] to get list of teams which have 1, if teams count is 0 set as "Gap"&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jthi_0-1640067373745.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/38565iB71E57FB5FFC2D5C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="jthi_0-1640067373745.png" alt="jthi_0-1640067373745.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 21 Dec 2021 06:19:08 GMT</pubDate>
    <dc:creator>jthi</dc:creator>
    <dc:date>2021-12-21T06:19:08Z</dc:date>
    <item>
      <title>Overlap / Gap Analysis by Row</title>
      <link>https://community.jmp.com/t5/Discussions/Overlap-Gap-Analysis-by-Row/m-p/446771#M69379</link>
      <description>&lt;P&gt;I'm looking for a method to run a gap and overlap analysis across a set of data 1000-ish rows.&amp;nbsp; Data are teams ranking their test coverage of each feature as 1, 2 or 3, Scores.&amp;nbsp; I want to look for gaps across the rows where no group has scored it a 1 and also show where multiple groups rank as 1.&amp;nbsp; A snapshot of the data table is below.&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Feature #&lt;/TD&gt;&lt;TD&gt;FVT&lt;/TD&gt;&lt;TD&gt;EVT&lt;/TD&gt;&lt;TD&gt;CVT&lt;/TD&gt;&lt;TD&gt;MSV&lt;/TD&gt;&lt;TD&gt;GQ&lt;/TD&gt;&lt;TD&gt;Cert&lt;/TD&gt;&lt;TD&gt;HW&lt;/TD&gt;&lt;TD&gt;PE&lt;/TD&gt;&lt;TD&gt;MFG Test&lt;/TD&gt;&lt;TD&gt;PDE&lt;/TD&gt;&lt;TD&gt;TCM / FAE?&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Fri, 09 Jun 2023 00:43:15 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Overlap-Gap-Analysis-by-Row/m-p/446771#M69379</guid>
      <dc:creator>MuMover</dc:creator>
      <dc:date>2023-06-09T00:43:15Z</dc:date>
    </item>
    <item>
      <title>Re: Overlap / Gap Analysis by Row</title>
      <link>https://community.jmp.com/t5/Discussions/Overlap-Gap-Analysis-by-Row/m-p/446795#M69382</link>
      <description>&lt;P&gt;I am not exactly sure what you are looking for, but here is a little script I wrote that produces the results I think you want&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="txnelson_0-1639797485771.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/38514i2490943747FB07DC/image-size/medium?v=v2&amp;amp;px=400" role="button" title="txnelson_0-1639797485771.png" alt="txnelson_0-1639797485771.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here( 1 );
dt = Data Table( "MuMover Example" );
colNames = dt &amp;lt;&amp;lt; get column names( continuous, string );

Remove From( colNames, 1, 1 );
Remove From( colNames, -2, 2 );

columnsWithNoOnes = {};

For( i = 1, i &amp;lt;= 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 &amp;lt;= N Rows( dt ), i++,
	temp = Loc( dt[i, Index( 2, 10 )], 1 );
	If( N Rows( temp ) &amp;gt; 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 )
			)
		)
	)
);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 18 Dec 2021 03:26:05 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Overlap-Gap-Analysis-by-Row/m-p/446795#M69382</guid>
      <dc:creator>txnelson</dc:creator>
      <dc:date>2021-12-18T03:26:05Z</dc:date>
    </item>
    <item>
      <title>Re: Overlap / Gap Analysis by Row</title>
      <link>https://community.jmp.com/t5/Discussions/Overlap-Gap-Analysis-by-Row/m-p/447223#M69402</link>
      <description>&lt;P&gt;Thanks for getting back to me Jim. I should have been more clear on desired outcome.&amp;nbsp; My goal is to have a Feature table showing what group has entered an 1 in their cell and if no groups have entered a 1.&amp;nbsp; For example: in the table above the first feature has two groups showing a 1, FVT and HW, so&amp;nbsp; for that feature the outcome would be FVT HW.&amp;nbsp; For feature 3, no group claims a 1, so outcome for feature 3 would be "Gap".&amp;nbsp; Hope that makes sense.&lt;/P&gt;</description>
      <pubDate>Mon, 20 Dec 2021 23:30:11 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Overlap-Gap-Analysis-by-Row/m-p/447223#M69402</guid>
      <dc:creator>MuMover</dc:creator>
      <dc:date>2021-12-20T23:30:11Z</dc:date>
    </item>
    <item>
      <title>Re: Overlap / Gap Analysis by Row</title>
      <link>https://community.jmp.com/t5/Discussions/Overlap-Gap-Analysis-by-Row/m-p/447225#M69403</link>
      <description>&lt;P&gt;Here is a formula that calculates what you want&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="txnelson_0-1640054869176.png" style="width: 846px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/38564iBFE2DD87071205D0/image-dimensions/846x267?v=v2" width="846" height="267" role="button" title="txnelson_0-1640054869176.png" alt="txnelson_0-1640054869176.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;If( Row() == 1,
	colNames = Current Data Table() &amp;lt;&amp;lt; get column names( continuous, string );
	Remove From( colNames, 1, 1 );
	Remove From( colNames, -2, 2 );
);
display = "";
For( i = 1, i &amp;lt;= N Items( colNames ), i++,
	If( Row() == 1,
		colNames = Current Data Table() &amp;lt;&amp;lt; get column names( continuous, string );
		Remove From( colNames, 1, 1 );
		Remove From( colNames, -2, 2 );
	);
	display = "";
	For( i = 1, i &amp;lt;= 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 );&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 21 Dec 2021 03:04:22 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Overlap-Gap-Analysis-by-Row/m-p/447225#M69403</guid>
      <dc:creator>txnelson</dc:creator>
      <dc:date>2021-12-21T03:04:22Z</dc:date>
    </item>
    <item>
      <title>Re: Overlap / Gap Analysis by Row</title>
      <link>https://community.jmp.com/t5/Discussions/Overlap-Gap-Analysis-by-Row/m-p/447246#M69405</link>
      <description>&lt;P&gt;Here is other solution using matrices (could be turned into formula also):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here(1);

dt = New Table("Untitled",
	Add Rows(8),
	Compress File When Saved(1),
	New Column("Feature #", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 5, 6, 7, 8])),
	New Column("FVT", Numeric, "Continuous", Format("Best", 12), Set Values([1, 1, 3, 3, 1, 1, 1, 1])),
	New Column("EVT", Numeric, "Continuous", Format("Best", 12), Set Values([., ., 3, 3, ., ., ., .])),
	New Column("CVT", Numeric, "Continuous", Format("Best", 12), Set Values([2, 2, 3, 3, 2, 2, 2, 2])),
	New Column("MSV", Numeric, "Continuous", Format("Best", 12), Set Values([3, 3, 3, 3, 2, 2, 2, 2])),
	New Column("GQ", Numeric, "Continuous", Format("Best", 12), Set Values([., ., 3, 3, ., ., ., .])),
	New Column("Cert", Numeric, "Continuous", Format("Best", 12), Set Values([3, 3, 3, 3, 3, 3, 3, 3])),
	New Column("HW", Numeric, "Continuous", Format("Best", 12), Set Values([1, 1, 3, 2, 3, 3, 3, 3])),
	New Column("PE", Numeric, "Continuous", Format("Best", 12), Set Values([2, 2, 3, 3, 2, 2, 2, 2])),
	New Column("MFG Test", Numeric, "Continuous", Format("Best", 12), Set Values([2, 2, 3, 3, 2, 2, 2, 2])),
	New Column("PDE", Numeric, "Continuous", Format("Best", 12), Set Values([., ., 3, 3, ., ., ., .])),
	New Column("TCM / FAE?", Numeric, "Continuous", Format("Best", 12), Set Values([., ., 3, 3, ., ., ., .]))
);

col_names = Remove(dt &amp;lt;&amp;lt; Get Column Names("String"), 1); //drop feature
all_ones = dt[0, 2::N Cols(dt)] == 1; //print this 
dt &amp;lt;&amp;lt; New Column("Summary", Character, &amp;lt;&amp;lt; Set Each Value(
	teams = Loc(all_ones[Row(), 0]);
	If(N Items(teams) &amp;gt; 0,
		Concat Items(col_names[teams], " ")
	, "Gap"
	)
));&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Some explanation:&lt;/P&gt;&lt;P&gt;&lt;CODE class=" language-jsl"&gt;col_names = Remove(dt &amp;lt;&amp;lt; Get Column Names("String"), 1);&lt;/CODE&gt;&amp;nbsp;get team names&lt;/P&gt;&lt;P&gt;&lt;CODE class=" language-jsl"&gt;all_ones = dt[0, 2::N Cols(dt)] == 1;&lt;/CODE&gt;Get values in datatable to matrix. If cell value is 1 set it as 1, if it is missing leave as missing and other values will become 0&lt;/P&gt;&lt;P&gt;&lt;CODE class=" language-jsl"&gt;teams = Loc(all_ones[Row(), 0])&lt;/CODE&gt;&amp;nbsp;For current Row() get indices for columns which have 1&lt;/P&gt;&lt;P&gt;&lt;CODE class=" language-jsl"&gt;If(N Items(teams) &amp;gt; 0, Concat Items(col_names[teams], " ") , "Gap")&lt;/CODE&gt;&amp;nbsp;Use col_teams[teams] to get list of teams which have 1, if teams count is 0 set as "Gap"&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jthi_0-1640067373745.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/38565iB71E57FB5FFC2D5C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="jthi_0-1640067373745.png" alt="jthi_0-1640067373745.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 21 Dec 2021 06:19:08 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Overlap-Gap-Analysis-by-Row/m-p/447246#M69405</guid>
      <dc:creator>jthi</dc:creator>
      <dc:date>2021-12-21T06:19:08Z</dc:date>
    </item>
    <item>
      <title>Re: Overlap / Gap Analysis by Row</title>
      <link>https://community.jmp.com/t5/Discussions/Overlap-Gap-Analysis-by-Row/m-p/447444#M69425</link>
      <description>&lt;P&gt;Thanks Jim!&lt;/P&gt;</description>
      <pubDate>Tue, 21 Dec 2021 16:19:35 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Overlap-Gap-Analysis-by-Row/m-p/447444#M69425</guid>
      <dc:creator>MuMover</dc:creator>
      <dc:date>2021-12-21T16:19:35Z</dc:date>
    </item>
  </channel>
</rss>

