<?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: Find observations where three or more numeric variables exceed values in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832351#M328979</link>
    <description>&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN&gt;The limits data set defines convex polygons. I cannot use a simple "is speed greater than the speed limit".&amp;nbsp; I need to use something like Ginside,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;but my polygons are not adjacent. They lay on top of each other. A lower temperature provides a larger polygon with the same center and some identical vertices.&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN&gt;How do you know which polygon goes with which point?&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Thu, 08 Sep 2022 16:23:33 GMT</pubDate>
    <dc:creator>Reeza</dc:creator>
    <dc:date>2022-09-08T16:23:33Z</dc:date>
    <item>
      <title>Find observations where three or more numeric variables exceed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/831959#M328831</link>
      <description>&lt;P&gt;I have a dataset of operating data as measured on three variables (e.g. speed, temperature, weight). I would like to identify which variables lie outside a boundary. The boundary are values for the three variables. The boundary is made up of about 200 observations in another table, and can be made to be contiguous, though operationally, only the max values are of consideration.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The only analogy I can find to this is gps related such as 'proc ginside'. My need is to compare numeric variables, but more than 2, and i don't know if my application would match a mapping procedure.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is this just a matter of testing an operating point against each point in the boundary table to see if it falls outside the limits? In which case construct a macro or loop?&lt;/P&gt;&lt;P&gt;Is there an existing method that streamlines this?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;example operating data from field&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;unit&lt;/TD&gt;&lt;TD&gt;date&lt;/TD&gt;&lt;TD&gt;temperature&lt;/TD&gt;&lt;TD&gt;speed&lt;/TD&gt;&lt;TD&gt;weight&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;g&lt;/TD&gt;&lt;TD&gt;01JAN2021:00:00:00.000000&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;1,231.40&lt;/TD&gt;&lt;TD&gt;248.93&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;g&lt;/TD&gt;&lt;TD&gt;01JAN2021:00:10:00.000000&lt;/TD&gt;&lt;TD&gt;12.5&lt;/TD&gt;&lt;TD&gt;1,480.82&lt;/TD&gt;&lt;TD&gt;250.74&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;g&lt;/TD&gt;&lt;TD&gt;01JAN2021:00:20:00.000000&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;1,134.39&lt;/TD&gt;&lt;TD&gt;282.13&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;g&lt;/TD&gt;&lt;TD&gt;01JAN2021:00:30:00.000000&lt;/TD&gt;&lt;TD&gt;22&lt;/TD&gt;&lt;TD&gt;1,090.64&lt;/TD&gt;&lt;TD&gt;275.02&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;example limits table&lt;BR /&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;point&lt;/TD&gt;&lt;TD&gt;Temperature&lt;/TD&gt;&lt;TD&gt;Speed_limit&lt;/TD&gt;&lt;TD&gt;Weight_limit&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;601.5029396&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;TD&gt;601.5029334&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;50.00000055&lt;/TD&gt;&lt;TD&gt;765.8339735&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;100.0000011&lt;/TD&gt;&lt;TD&gt;765.8339736&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;150.0000017&lt;/TD&gt;&lt;TD&gt;765.8339737&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;200.0000023&lt;/TD&gt;&lt;TD&gt;765.8339737&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;250.0000028&lt;/TD&gt;&lt;TD&gt;765.8339738&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;300.0000034&lt;/TD&gt;&lt;TD&gt;765.8339739&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;350.000004&lt;/TD&gt;&lt;TD&gt;765.8339739&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;400.0000047&lt;/TD&gt;&lt;TD&gt;765.833974&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;</description>
      <pubDate>Tue, 06 Sep 2022 15:01:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/831959#M328831</guid>
      <dc:creator>eh51</dc:creator>
      <dc:date>2022-09-06T15:01:23Z</dc:date>
    </item>
    <item>
      <title>Re: Find observations where three or more numeric variables exceed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/831962#M328834</link>
      <description>&lt;P&gt;Can you show what you expect for the result?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is likely a fairly straight-forward Proc SQL call as that is one way to combine and compare all records in one data set with another. This would be called a Cartesian Join. One example that selects records where ALL three limits are exceeded would look like this. Note that you didn't very clearly specify if you want when ALL three exceed or two of three or if any one of the three exceed their limit. So that might mean some additional logic involving OR instead of AND for the comparisons.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;proc sql;
   create table compared as 
   select a.*, b.*
   from operatingdata as a
        ,limitdata as b
   where a.temperature &amp;gt; b.temperature
      and a.speed &amp;gt; b.speed_limit
      and a.weight &amp;gt; b.weight_limit
   ;
quit;&lt;/PRE&gt;
&lt;P&gt;The output of the above would have all of the values involved so you could process data further for some process.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I suspect somewhere you are going to get to a "but I only wanted the lowest set of limits that were exceeded". If so, you should state that but the output set above could be sorted and processed to get that.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Sep 2022 15:22:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/831962#M328834</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2022-09-06T15:22:09Z</dc:date>
    </item>
    <item>
      <title>Re: Find observations where three or more numeric variables exceed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/831972#M328835</link>
      <description>&lt;P&gt;Thanks&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13884"&gt;@ballardw&lt;/a&gt;,&amp;nbsp;I think a simple compare on all three variables would show some points as out of bounds when they are in fact in bounds.&amp;nbsp;&lt;/P&gt;&lt;P&gt;A math method I have found that comes close is 'ray casting'. (in the case of 2 dimensions) take any operating point's y value and extend to infinite. If the line intersects the limits boundary an odd number of times, the point is inside. If an even number of times, or 0, then it is outside the boundary.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So some time of ray casting in SAS for more than 2 dimensions. I might be able to remove a dimension though.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Sep 2022 15:45:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/831972#M328835</guid>
      <dc:creator>eh51</dc:creator>
      <dc:date>2022-09-06T15:45:31Z</dc:date>
    </item>
    <item>
      <title>Re: Find observations where three or more numeric variables exceed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/831975#M328836</link>
      <description>&lt;P&gt;You can use arrays here most likely but it depends a bit on how your limits are structured. GINSIDE is likely not the right approach unless you're dealing with spatial limits.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Can you post a small reproducible example and someone can help you with the code?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And here's a tutorial on using Arrays in SAS&lt;BR /&gt;&lt;A href="https://stats.idre.ucla.edu/sas/seminars/sas-arrays/" target="_blank"&gt;https://stats.idre.ucla.edu/sas/seminars/sas-arrays/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Sep 2022 15:48:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/831975#M328836</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2022-09-06T15:48:01Z</dc:date>
    </item>
    <item>
      <title>Re: Find observations where three or more numeric variables exceed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/831999#M328845</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/417098"&gt;@eh51&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Thanks&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13884"&gt;@ballardw&lt;/a&gt;,&amp;nbsp;I think a simple compare on all three variables would show some points as out of bounds when they are in fact in bounds.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A math method I have found that comes close is 'ray casting'. (in the case of 2 dimensions) take any operating point's y value and extend to infinite. If the line intersects the limits boundary an odd number of times, the point is inside. If an even number of times, or 0, then it is outside the boundary.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So some time of ray casting in SAS for more than 2 dimensions. I might be able to remove a dimension though.&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I think you may be understating your problem by a lot. If the points in your limits are vertices of solution polygons or areas, then you need to state so. If so you may be looking for SAS/IML or SAS/OR depending on the interpretation of your complete data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A reasonable two-dimension solutions set such as just speed and weight to construct solution polygons then Proc Ginside would work.&amp;nbsp; Which may well be an implementation of the "ray casting" as I have no idea of the internal coding.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But this is three dimensions and I'm not sure of a 3d approach that is quite equivalent. Something related to solid modelling perhaps.&lt;/P&gt;</description>
      <pubDate>Tue, 06 Sep 2022 18:01:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/831999#M328845</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2022-09-06T18:01:48Z</dc:date>
    </item>
    <item>
      <title>Re: Find observations where three or more numeric variables exceed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832036#M328856</link>
      <description>&lt;P&gt;I am really working from scratch here.&amp;nbsp;&lt;/P&gt;&lt;P&gt;My limits can be vertices of a polygon, and i believe I can further assume they are always convex.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am looking at SAS/IML right now and might try to implement the equation (y-y0)(x1-x0)-(x-x0)(y1-y0)&lt;/P&gt;&lt;P&gt;if the result is less than 0, then the point is to the right of the segment, greater than is to the left, and 0 is on the line segment. To be inside or outside, the point has to be to the right of every segment, or left of every segment. Any mix means it is outside the polygon.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I might give ginside a try though given your input. Assuming the map can be anything.&amp;nbsp;&lt;/P&gt;&lt;P&gt;In either case, I will have determine which of 10 different speed and weight polygons to use based on the operating temperature. There is some error in this, but I can make it conservative.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Sep 2022 19:03:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832036#M328856</guid>
      <dc:creator>eh51</dc:creator>
      <dc:date>2022-09-06T19:03:10Z</dc:date>
    </item>
    <item>
      <title>Re: Find observations where three or more numeric variables exceed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832038#M328858</link>
      <description>&lt;P&gt;Ignoring the fact you have three variables for the moment, see this example. I'd try and get it working for one first and then figure out how to scale it.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://communities.sas.com/t5/Graphics-Programming/Create-a-polygon-and-test-whether-point-s-lie-within/td-p/745309" target="_blank"&gt;https://communities.sas.com/t5/Graphics-Programming/Create-a-polygon-and-test-whether-point-s-lie-within/td-p/745309&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Sep 2022 19:12:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832038#M328858</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2022-09-06T19:12:33Z</dc:date>
    </item>
    <item>
      <title>Re: Find observations where three or more numeric variables exceed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832055#M328862</link>
      <description>&lt;P&gt;Looking further at Ginside, I don't see a way to switch between different polygons based on the operating point. Ginside wants adjoining polygons, but my polygons will enclose each other since the third variable expands the polygon that should be used.&amp;nbsp;&lt;/P&gt;&lt;P&gt;For this reason, I am creating a set of arrays that define the polygon, and using the third variable from the operating data to choose which polygon to compare. I will determine if the op point lies always to one side of all of the polygon segments.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Sep 2022 20:55:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832055#M328862</guid>
      <dc:creator>eh51</dc:creator>
      <dc:date>2022-09-06T20:55:26Z</dc:date>
    </item>
    <item>
      <title>Re: Find observations where three or more numeric variables exceed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832100#M328881</link>
      <description>you could calculated Mahalanobis distance between center and the rows of x by MAHALANOBIS function in SAS/IML . &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13684"&gt;@Rick_SAS&lt;/a&gt; know more thing and might give you better method .</description>
      <pubDate>Wed, 07 Sep 2022 11:45:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832100#M328881</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2022-09-07T11:45:47Z</dc:date>
    </item>
    <item>
      <title>Re: Find observations where three or more numeric variables exceed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832346#M328974</link>
      <description>&lt;P&gt;I will try to address all of the comments from my &lt;A href="https://communities.sas.com/t5/SAS-Programming/Create-array-from-subset-of-data-set/m-p/832300#M328956" target="_self"&gt;Array thread&lt;/A&gt;, which are essentially asking me to 'start over'.&amp;nbsp; &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The data set I have is a set of field measurements. Operating data.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Obs&lt;/TD&gt;&lt;TD&gt;Group&lt;/TD&gt;&lt;TD&gt;local_dttm&lt;/TD&gt;&lt;TD&gt;Speed&lt;/TD&gt;&lt;TD&gt;weight&lt;/TD&gt;&lt;TD&gt;Temperature&lt;/TD&gt;&lt;TD&gt;Cat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:17:20:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.65&lt;/TD&gt;&lt;TD&gt;-426.06&lt;/TD&gt;&lt;TD&gt;3.35&lt;/TD&gt;&lt;TD&gt;0.97&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:17:30:00.000000&lt;/TD&gt;&lt;TD&gt;2,330.98&lt;/TD&gt;&lt;TD&gt;-480.73&lt;/TD&gt;&lt;TD&gt;3.74&lt;/TD&gt;&lt;TD&gt;0.97&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:17:40:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.38&lt;/TD&gt;&lt;TD&gt;-447.44&lt;/TD&gt;&lt;TD&gt;3.88&lt;/TD&gt;&lt;TD&gt;0.97&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:17:50:00.000000&lt;/TD&gt;&lt;TD&gt;2,327.91&lt;/TD&gt;&lt;TD&gt;-365.98&lt;/TD&gt;&lt;TD&gt;3.74&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:18:00:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.30&lt;/TD&gt;&lt;TD&gt;-225.05&lt;/TD&gt;&lt;TD&gt;3.62&lt;/TD&gt;&lt;TD&gt;0.99&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:18:10:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.98&lt;/TD&gt;&lt;TD&gt;-234.77&lt;/TD&gt;&lt;TD&gt;3.37&lt;/TD&gt;&lt;TD&gt;0.99&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:21:10:00.000000&lt;/TD&gt;&lt;TD&gt;2,331.31&lt;/TD&gt;&lt;TD&gt;-87.29&lt;/TD&gt;&lt;TD&gt;2.01&lt;/TD&gt;&lt;TD&gt;0.99&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:21:20:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.99&lt;/TD&gt;&lt;TD&gt;-77.5&lt;/TD&gt;&lt;TD&gt;1.81&lt;/TD&gt;&lt;TD&gt;0.99&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:21:30:00.000000&lt;/TD&gt;&lt;TD&gt;2,330.17&lt;/TD&gt;&lt;TD&gt;12.78&lt;/TD&gt;&lt;TD&gt;1.83&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:21:40:00.000000&lt;/TD&gt;&lt;TD&gt;2,330.07&lt;/TD&gt;&lt;TD&gt;16.9&lt;/TD&gt;&lt;TD&gt;1.68&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:21:50:00.000000&lt;/TD&gt;&lt;TD&gt;2,330.94&lt;/TD&gt;&lt;TD&gt;2.36&lt;/TD&gt;&lt;TD&gt;1.94&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:22:00:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.89&lt;/TD&gt;&lt;TD&gt;-33.22&lt;/TD&gt;&lt;TD&gt;2.03&lt;/TD&gt;&lt;TD&gt;0.99&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:22:10:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.93&lt;/TD&gt;&lt;TD&gt;-142.8&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:22:20:00.000000&lt;/TD&gt;&lt;TD&gt;2,330.20&lt;/TD&gt;&lt;TD&gt;-141.09&lt;/TD&gt;&lt;TD&gt;1.95&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:22:30:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.50&lt;/TD&gt;&lt;TD&gt;-129.25&lt;/TD&gt;&lt;TD&gt;1.78&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;16&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:22:40:00.000000&lt;/TD&gt;&lt;TD&gt;2,330.17&lt;/TD&gt;&lt;TD&gt;-133.56&lt;/TD&gt;&lt;TD&gt;1.69&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;17&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:22:50:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.39&lt;/TD&gt;&lt;TD&gt;-152.02&lt;/TD&gt;&lt;TD&gt;1.56&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;18&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:23:00:00.000000&lt;/TD&gt;&lt;TD&gt;2,330.09&lt;/TD&gt;&lt;TD&gt;-182.97&lt;/TD&gt;&lt;TD&gt;1.52&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;19&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:23:10:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.59&lt;/TD&gt;&lt;TD&gt;-169.54&lt;/TD&gt;&lt;TD&gt;1.29&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:23:20:00.000000&lt;/TD&gt;&lt;TD&gt;2,330.77&lt;/TD&gt;&lt;TD&gt;-221.52&lt;/TD&gt;&lt;TD&gt;1.31&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;21&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:23:30:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.89&lt;/TD&gt;&lt;TD&gt;-236.03&lt;/TD&gt;&lt;TD&gt;1.61&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;22&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:23:40:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.93&lt;/TD&gt;&lt;TD&gt;-243.14&lt;/TD&gt;&lt;TD&gt;1.7&lt;/TD&gt;&lt;TD&gt;0.97&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;23&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:23:50:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.21&lt;/TD&gt;&lt;TD&gt;-234.27&lt;/TD&gt;&lt;TD&gt;1.6&lt;/TD&gt;&lt;TD&gt;0.97&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;24&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;05JAN2021:00:00:00.000000&lt;/TD&gt;&lt;TD&gt;2,328.60&lt;/TD&gt;&lt;TD&gt;-229.13&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;0.97&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;25&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;05JAN2021:00:10:00.000000&lt;/TD&gt;&lt;TD&gt;2,330.11&lt;/TD&gt;&lt;TD&gt;-188.98&lt;/TD&gt;&lt;TD&gt;1.49&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;26&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;05JAN2021:00:20:00.000000&lt;/TD&gt;&lt;TD&gt;2,328.01&lt;/TD&gt;&lt;TD&gt;-216.42&lt;/TD&gt;&lt;TD&gt;1.34&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;27&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;05JAN2021:00:30:00.000000&lt;/TD&gt;&lt;TD&gt;2,308.17&lt;/TD&gt;&lt;TD&gt;-213.41&lt;/TD&gt;&lt;TD&gt;1.23&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;28&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;05JAN2021:00:40:00.000000&lt;/TD&gt;&lt;TD&gt;2,327.50&lt;/TD&gt;&lt;TD&gt;-212.38&lt;/TD&gt;&lt;TD&gt;1.39&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My desired data set would show if the operating point is over a limit (yes/no could be inside/outside or 1/0, etc.)&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Obs&lt;/TD&gt;&lt;TD&gt;Group&lt;/TD&gt;&lt;TD&gt;local_dttm&lt;/TD&gt;&lt;TD&gt;Speed&lt;/TD&gt;&lt;TD&gt;weight&lt;/TD&gt;&lt;TD&gt;Temperature&lt;/TD&gt;&lt;TD&gt;Cat&lt;/TD&gt;&lt;TD&gt;Exceeds_limits&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:17:20:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.65&lt;/TD&gt;&lt;TD&gt;-426.06&lt;/TD&gt;&lt;TD&gt;3.35&lt;/TD&gt;&lt;TD&gt;0.97&lt;/TD&gt;&lt;TD&gt;yes&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:17:30:00.000000&lt;/TD&gt;&lt;TD&gt;2,330.98&lt;/TD&gt;&lt;TD&gt;-480.73&lt;/TD&gt;&lt;TD&gt;3.74&lt;/TD&gt;&lt;TD&gt;0.97&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:17:40:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.38&lt;/TD&gt;&lt;TD&gt;-447.44&lt;/TD&gt;&lt;TD&gt;3.88&lt;/TD&gt;&lt;TD&gt;0.97&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:17:50:00.000000&lt;/TD&gt;&lt;TD&gt;2,327.91&lt;/TD&gt;&lt;TD&gt;-365.98&lt;/TD&gt;&lt;TD&gt;3.74&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:18:00:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.30&lt;/TD&gt;&lt;TD&gt;-225.05&lt;/TD&gt;&lt;TD&gt;3.62&lt;/TD&gt;&lt;TD&gt;0.99&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:18:10:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.98&lt;/TD&gt;&lt;TD&gt;-234.77&lt;/TD&gt;&lt;TD&gt;3.37&lt;/TD&gt;&lt;TD&gt;0.99&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:21:10:00.000000&lt;/TD&gt;&lt;TD&gt;2,331.31&lt;/TD&gt;&lt;TD&gt;-87.29&lt;/TD&gt;&lt;TD&gt;2.01&lt;/TD&gt;&lt;TD&gt;0.99&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:21:20:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.99&lt;/TD&gt;&lt;TD&gt;-77.5&lt;/TD&gt;&lt;TD&gt;1.81&lt;/TD&gt;&lt;TD&gt;0.99&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:21:30:00.000000&lt;/TD&gt;&lt;TD&gt;2,330.17&lt;/TD&gt;&lt;TD&gt;12.78&lt;/TD&gt;&lt;TD&gt;1.83&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:21:40:00.000000&lt;/TD&gt;&lt;TD&gt;2,330.07&lt;/TD&gt;&lt;TD&gt;16.9&lt;/TD&gt;&lt;TD&gt;1.68&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:21:50:00.000000&lt;/TD&gt;&lt;TD&gt;2,330.94&lt;/TD&gt;&lt;TD&gt;2.36&lt;/TD&gt;&lt;TD&gt;1.94&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:22:00:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.89&lt;/TD&gt;&lt;TD&gt;-33.22&lt;/TD&gt;&lt;TD&gt;2.03&lt;/TD&gt;&lt;TD&gt;0.99&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:22:10:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.93&lt;/TD&gt;&lt;TD&gt;-142.8&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:22:20:00.000000&lt;/TD&gt;&lt;TD&gt;2,330.20&lt;/TD&gt;&lt;TD&gt;-141.09&lt;/TD&gt;&lt;TD&gt;1.95&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:22:30:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.50&lt;/TD&gt;&lt;TD&gt;-129.25&lt;/TD&gt;&lt;TD&gt;1.78&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;16&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:22:40:00.000000&lt;/TD&gt;&lt;TD&gt;2,330.17&lt;/TD&gt;&lt;TD&gt;-133.56&lt;/TD&gt;&lt;TD&gt;1.69&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;17&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:22:50:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.39&lt;/TD&gt;&lt;TD&gt;-152.02&lt;/TD&gt;&lt;TD&gt;1.56&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;18&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:23:00:00.000000&lt;/TD&gt;&lt;TD&gt;2,330.09&lt;/TD&gt;&lt;TD&gt;-182.97&lt;/TD&gt;&lt;TD&gt;1.52&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;19&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:23:10:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.59&lt;/TD&gt;&lt;TD&gt;-169.54&lt;/TD&gt;&lt;TD&gt;1.29&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:23:20:00.000000&lt;/TD&gt;&lt;TD&gt;2,330.77&lt;/TD&gt;&lt;TD&gt;-221.52&lt;/TD&gt;&lt;TD&gt;1.31&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;21&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:23:30:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.89&lt;/TD&gt;&lt;TD&gt;-236.03&lt;/TD&gt;&lt;TD&gt;1.61&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;22&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:23:40:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.93&lt;/TD&gt;&lt;TD&gt;-243.14&lt;/TD&gt;&lt;TD&gt;1.7&lt;/TD&gt;&lt;TD&gt;0.97&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;23&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;04JAN2021:23:50:00.000000&lt;/TD&gt;&lt;TD&gt;2,329.21&lt;/TD&gt;&lt;TD&gt;-234.27&lt;/TD&gt;&lt;TD&gt;1.6&lt;/TD&gt;&lt;TD&gt;0.97&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;24&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;05JAN2021:00:00:00.000000&lt;/TD&gt;&lt;TD&gt;2,328.60&lt;/TD&gt;&lt;TD&gt;-229.13&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;0.97&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;25&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;05JAN2021:00:10:00.000000&lt;/TD&gt;&lt;TD&gt;2,330.11&lt;/TD&gt;&lt;TD&gt;-188.98&lt;/TD&gt;&lt;TD&gt;1.49&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;26&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;05JAN2021:00:20:00.000000&lt;/TD&gt;&lt;TD&gt;2,328.01&lt;/TD&gt;&lt;TD&gt;-216.42&lt;/TD&gt;&lt;TD&gt;1.34&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;27&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;05JAN2021:00:30:00.000000&lt;/TD&gt;&lt;TD&gt;2,308.17&lt;/TD&gt;&lt;TD&gt;-213.41&lt;/TD&gt;&lt;TD&gt;1.23&lt;/TD&gt;&lt;TD&gt;0.98&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;28&lt;/TD&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;05JAN2021:00:40:00.000000&lt;/TD&gt;&lt;TD&gt;2,327.50&lt;/TD&gt;&lt;TD&gt;-212.38&lt;/TD&gt;&lt;TD&gt;1.39&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The final report by group, which is simple once the above is available.&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Group&lt;/TD&gt;&lt;TD&gt;Percent exceeds&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8784&lt;/TD&gt;&lt;TD&gt;1.00%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5694&lt;/TD&gt;&lt;TD&gt;1.50%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5289&lt;/TD&gt;&lt;TD&gt;3.00%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4535&lt;/TD&gt;&lt;TD&gt;0.10%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2489&lt;/TD&gt;&lt;TD&gt;8.00%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3527&lt;/TD&gt;&lt;TD&gt;4.00%&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The limits data set defines convex polygons. I cannot use a simple "is speed greater than the speed limit".&amp;nbsp; I need to use something like Ginside,&amp;nbsp;&lt;SPAN&gt;but my polygons are not adjacent. They lay on top of each other. A lower temperature provides a larger polygon with the same center and some identical vertices.&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can reduce my problem to two dimensions (two variables). The other variable (actually 2), I would use to choose the correct set of limits (speed/weight).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is a look at the limits data set, from which 10 different polygon vertices are obtained.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;each cat/temperature combination represents one array.&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;cat&lt;/TD&gt;&lt;TD&gt;Temperature&lt;/TD&gt;&lt;TD&gt;speed&lt;/TD&gt;&lt;TD&gt;weight&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.9&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;602&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.9&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;TD&gt;602&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.9&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;TD&gt;1128&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.9&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;1953&lt;/TD&gt;&lt;TD&gt;1128&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.95&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;2161&lt;/TD&gt;&lt;TD&gt;395&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.95&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;2162&lt;/TD&gt;&lt;TD&gt;339&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.95&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;2162&lt;/TD&gt;&lt;TD&gt;282&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.95&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;2163&lt;/TD&gt;&lt;TD&gt;226&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.95&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;2164&lt;/TD&gt;&lt;TD&gt;169&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.95&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;2164&lt;/TD&gt;&lt;TD&gt;113&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.9&lt;/TD&gt;&lt;TD&gt;35&lt;/TD&gt;&lt;TD&gt;1978&lt;/TD&gt;&lt;TD&gt;-564&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.9&lt;/TD&gt;&lt;TD&gt;35&lt;/TD&gt;&lt;TD&gt;1974&lt;/TD&gt;&lt;TD&gt;-621&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.9&lt;/TD&gt;&lt;TD&gt;35&lt;/TD&gt;&lt;TD&gt;1968&lt;/TD&gt;&lt;TD&gt;-677&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.95&lt;/TD&gt;&lt;TD&gt;35&lt;/TD&gt;&lt;TD&gt;2037&lt;/TD&gt;&lt;TD&gt;1016&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.95&lt;/TD&gt;&lt;TD&gt;35&lt;/TD&gt;&lt;TD&gt;2050&lt;/TD&gt;&lt;TD&gt;959&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.95&lt;/TD&gt;&lt;TD&gt;35&lt;/TD&gt;&lt;TD&gt;2062&lt;/TD&gt;&lt;TD&gt;903&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.95&lt;/TD&gt;&lt;TD&gt;35&lt;/TD&gt;&lt;TD&gt;2071&lt;/TD&gt;&lt;TD&gt;846&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.95&lt;/TD&gt;&lt;TD&gt;35&lt;/TD&gt;&lt;TD&gt;2079&lt;/TD&gt;&lt;TD&gt;790&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.95&lt;/TD&gt;&lt;TD&gt;35&lt;/TD&gt;&lt;TD&gt;2085&lt;/TD&gt;&lt;TD&gt;734&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.95&lt;/TD&gt;&lt;TD&gt;35&lt;/TD&gt;&lt;TD&gt;2090&lt;/TD&gt;&lt;TD&gt;677&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0.95&lt;/TD&gt;&lt;TD&gt;35&lt;/TD&gt;&lt;TD&gt;2092&lt;/TD&gt;&lt;TD&gt;621&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My thought was to step through each operating data set observation,&amp;nbsp;&lt;/P&gt;&lt;P&gt;Determine which set of limits to use (the rows where op-cat and op-temperature fall within a cat and temp in the limits data set)&lt;/P&gt;&lt;P&gt;Make the calculation for each operating set observation&lt;/P&gt;&lt;P&gt;Write the result to a new variable in the operating data set&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is what I have. Any recommendations on how to accomplish the above is appreciated.&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;data op_results;
set op_base;

/* original idea was to load a set of arrays that I can step through later in this data step but am not seeing a path */
 create set of applicable_array (plural) here
 
/*   initialize some variables   */
negatives = 0;
positives = 0;
zeroes = 0;

/*   step through the limits and determine if the operating point is to the right or left SIDE of each line drawn by each vertices pair in the limits data set/array */
do j = 2 to numrow(applicable_array,1); 
   side = sign(
	(speed - applicable_array[i-1,1])*(applicable_array[i,2]-applicable_array[i-1,2]) - 
	(weight - applicable_array[i-1,2])*(applicable_array[i,1]-applicable_array[i-1,1])
	       );   
   if side = -1 then negatives++;
   else if side = 1 then positives++;
   else zeroes++;
end;
IF negatives = 0 and positives &amp;gt; 0 then exceedance = 'inside';  /*  inside/outside could be yes/no or 1/0, etc.  */
else exceedance = 'outside';

run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 08 Sep 2022 16:20:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832346#M328974</guid>
      <dc:creator>eh51</dc:creator>
      <dc:date>2022-09-08T16:20:11Z</dc:date>
    </item>
    <item>
      <title>Re: Find observations where three or more numeric variables exceed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832351#M328979</link>
      <description>&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN&gt;The limits data set defines convex polygons. I cannot use a simple "is speed greater than the speed limit".&amp;nbsp; I need to use something like Ginside,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;but my polygons are not adjacent. They lay on top of each other. A lower temperature provides a larger polygon with the same center and some identical vertices.&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN&gt;How do you know which polygon goes with which point?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 08 Sep 2022 16:23:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832351#M328979</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2022-09-08T16:23:33Z</dc:date>
    </item>
    <item>
      <title>Re: Find observations where three or more numeric variables exceed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832369#M328988</link>
      <description>&lt;P&gt;IF your polygons are convex and possibly concentric then use Ginside with concentric polygons with Temperature as the ID variable. Use the other two coordinates as the map variables. Ginside would return the innermost polygon id value that a point is inside. If the data is ordered correctly. At least it does for a very small example.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;/* create concentric polygon set
   with the ID of the innermost smallest
   first (Not sure if the order is critical)
note the repeat of first vertex as last to close
the polygon
*/
data mapset;
   input x y idvar;
datalines;
5 5 1
5 10 1
10 10 1
10 5  1
5 5 1
0 0 2
0 15 2
15 15 2
15 0 2
0 0 2
;

/* this shows appearance of the polygons*/
pattern value=empty;
proc gmap map=mapset data=mapset;
id idvar;
choro idvar /coutline=black;
run;
quit;

/* create some points to test ginside*/
data testvalues;
  input x y;
datalines;
6 6
6 13
1 1
;

proc ginside map=mapset data=testvalues
     out=resultset
     includeborder
  ;
  id idvar;
run;&lt;/PRE&gt;
&lt;P&gt;The "trick" may be getting the map data set created as I cannot tell if you have the values in proper graphing order which is not a trivial exercise.&lt;/P&gt;
&lt;P&gt;I have an example that closes each polygon to make sure the entire boundary is as expected. This could be accomplished if your data is in a good order by using first. and last processing to set the starting coordinates of the polygon on the First.temperature and then add them as the closing point at the Last.temperature from boundaries set.&lt;/P&gt;
&lt;P&gt;This is one way:&lt;/P&gt;
&lt;PRE&gt;data limits;
  input cat	Temperature speed weight;
datalines;
0.9	30	0	602
0.9	30	50	602
0.9	30	50	1128
0.9	30	1953	1128
0.95	30	2161	395
0.95	30	2162	339
0.95	30	2162	282
0.95	30	2163	226
0.95	30	2164	169
0.95	30	2164	113
0.9	35	1978	-564
0.9	35	1974	-621
0.9	35	1968	-677
0.95	35	2037	1016
0.95	35	2050	959
0.95	35	2062	903
0.95	35	2071	846
0.95	35	2079	790
0.95	35	2085	734
0.95	35	2090	677
0.95	35	2092	621
;

data mapset;
  /*map set requires specific variables*/
  set limits (rename=(temperature=id speed=x weight=y));
  /* if your id variable is grouped but not actually sorted*/
  by id notsorted;
  retain tempx tempy;
  if first.id then do;
     tempx=x;
     tempy=y;
  end;
  output;
  if last.id then do;
     x=tempx;
     y=tempy;
     output;
  end;
  drop tempx tempy;
run;
&lt;/PRE&gt;
&lt;P&gt;No clue as to the behavior of how overlapping non-concentric polygons will react. I think the first ID value found would be the result but not interested enough to try to create such data and test.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Note that depending on GINSIDE options chosen you can restrict the output data set to only inside, only outside or all the data. If "outside" of all polygons the ID variable should be missing.&lt;/P&gt;</description>
      <pubDate>Thu, 08 Sep 2022 17:48:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832369#M328988</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2022-09-08T17:48:46Z</dc:date>
    </item>
    <item>
      <title>Re: Find observations where three or more numeric variables exceed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832390#M329004</link>
      <description>&lt;P&gt;The value of 'cat' and 'temperature' in the operations data set will fall between one of the limits. I would use the more conservative limit. This is the code I planned to use to choose the applicable limit array.&lt;/P&gt;&lt;P&gt;I replaced the code with --use...-- to give the idea.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;/* determine which boundary to use */&lt;BR /&gt;if temperature &amp;lt;= 30 then do;&lt;BR /&gt;  if cat &amp;lt;= 0.90 then  --use limits 30090--  ;&lt;BR /&gt;  else if (0.90 &amp;lt; cat &amp;lt;= 0.95) then   --use limits 30095--  end;&lt;BR /&gt;  else if (0.95 &amp;lt; cat &amp;lt;= 1) then  --use limits 30100--  end;&lt;BR /&gt;  else if (1 &amp;lt; cat &amp;lt;= 1.05) then  --use limits 30105--  end;&lt;BR /&gt;  else   --use limits 30110;&lt;BR /&gt;end;&lt;BR /&gt;&lt;BR /&gt;else do;&lt;BR /&gt;  if cat &amp;lt;= 0.90 then    --use limits 35090--  ;&lt;BR /&gt;  else if (0.90 &amp;lt; cat &amp;lt;= 0.95) then    --use limits 35095--  ;&lt;BR /&gt;  else if (0.95 &amp;lt; cat &amp;lt;= 1) then    --use limits 35100--  ;&lt;BR /&gt;  else if (1 &amp;lt; cat &amp;lt;= 1.05) then    --use limits 35105--  ;&lt;BR /&gt;  else  --use limits 35110--  ;&lt;BR /&gt;end;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 08 Sep 2022 18:56:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832390#M329004</guid>
      <dc:creator>eh51</dc:creator>
      <dc:date>2022-09-08T18:56:22Z</dc:date>
    </item>
    <item>
      <title>Re: Find observations where three or more numeric variables exceed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832392#M329006</link>
      <description>I may have missed it, did you share an example of what the polygon data set looks like? I don't see any x/y points in any data?&lt;BR /&gt;I would try GINSIDE as it may default to the closest boundary which align with your requirements. If you wanted the outer boundaries, I suspect that may be harder. &lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 08 Sep 2022 19:05:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832392#M329006</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2022-09-08T19:05:24Z</dc:date>
    </item>
    <item>
      <title>Re: Find observations where three or more numeric variables exceed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832458#M329040</link>
      <description>Or you could try Principle Component Analysis to map these three variable into X and Y axis ,&lt;BR /&gt;and use PROC GINSIDE or Euclidean/Mahalanobis distance ?&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://blogs.sas.com/content/iml/2014/11/07/distribution-of-blood-types.html" target="_blank"&gt;https://blogs.sas.com/content/iml/2014/11/07/distribution-of-blood-types.html&lt;/A&gt;</description>
      <pubDate>Fri, 09 Sep 2022 10:26:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832458#M329040</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2022-09-09T10:26:27Z</dc:date>
    </item>
    <item>
      <title>Re: Find observations where three or more numeric variables exceed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832566#M329079</link>
      <description>Yes. In the limits table above, speed and weight would be the x and y.</description>
      <pubDate>Fri, 09 Sep 2022 19:05:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/832566#M329079</guid>
      <dc:creator>eh51</dc:creator>
      <dc:date>2022-09-09T19:05:51Z</dc:date>
    </item>
    <item>
      <title>Re: Find observations where three or more numeric variables exceed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/833165#M329345</link>
      <description>&lt;P&gt;My solution was to go with proc ginside.&amp;nbsp;&lt;/P&gt;&lt;P&gt;However, I broke the 4 dimensional problem into a set of 10 2 dimensional problems.&lt;/P&gt;&lt;P&gt;I separated my limits data set into 10 data sets based on the 'temp' and 'cat' variables.&amp;nbsp;&lt;/P&gt;&lt;P&gt;I also separated my operational data into 10 data sets also by 'temp' and 'cat' variables.&amp;nbsp;&lt;/P&gt;&lt;P&gt;I then used proc ginside to determine which observations were inside and which were outside the limit polygon.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I then concatenated the 10 sets back to one.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for the advice.&amp;nbsp;&lt;/P&gt;&lt;P&gt;The code is basic, but is here for benefit of readers. Feedback is welcome also.&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;/*   Create the boundary tables    */

data lim_35090 (keep=x y limid);
set sasuser.limits2330 (rename=(speed=x weight=y));
where(cat= 0.9  &amp;amp; temperature=35);
run;

data lim_35095 (keep=x y limid);
set sasuser.limits2330 (rename=(speed=x weight=y));
where(cat= 0.95 &amp;amp; temperature=35);&lt;BR /&gt;&lt;BR /&gt;...8&amp;nbsp;others&amp;nbsp;similar&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;/*  Create tables of the operating data      */ 
DATA ops_30090 ops_30095 ops_30100 ops_30105 ops_30110 ops_35090 ops_35095 ops_35100 ops_35105 ops_35110;
    SET op_base1 (rename=(speed=x weight=y));
	if temperature &amp;lt;= 30 then do;
			if cat &amp;lt;= 0.90 THEN OUTPUT ops_30090;
			else if (0.90 &amp;lt; cat &amp;lt;= 0.95) THEN OUTPUT ops_30095;
			else if (0.95 &amp;lt; cat &amp;lt;= 1) THEN OUTPUT ops_30100;
			else if (1 &amp;lt; cat &amp;lt;= 1.05) THEN OUTPUT ops_30105;
			else OUTPUT ops_30110;
		end;	
	
	else do;
			if cat &amp;lt;= 0.90 THEN OUTPUT ops_35090;
			else if (0.90 &amp;lt; cat &amp;lt;= 0.95) THEN OUTPUT ops_35095;
			else if (0.95 &amp;lt; cat &amp;lt;= 1) THEN OUTPUT ops_35100;
			else if (1 &amp;lt; cat &amp;lt;= 1.05) THEN OUTPUT ops_35105;
			else OUTPUT ops_35110;
		end;
RUN;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;/* macro to evaluate if observation is inside limits*/
OPTIONS MPRINT;
%macro insout(suffix=);
	
	proc ginside map=lim_&amp;amp;suffix data=ops_&amp;amp;suffix
	     out=results_&amp;amp;suffix
	     includeborder
	  ;
	  id limid;
	run;
			
%mend insout;

/*  Run macros for ginside  */
%insout(suffix=30090);
%insout(suffix=30095);
%insout(suffix=30100);
%insout(suffix=30105);
%insout(suffix=30110);
%insout(suffix=35090);
%insout(suffix=35095);
%insout(suffix=35100);
%insout(suffix=35105);
%insout(suffix=35110);&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 13 Sep 2022 14:45:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-observations-where-three-or-more-numeric-variables-exceed/m-p/833165#M329345</guid>
      <dc:creator>eh51</dc:creator>
      <dc:date>2022-09-13T14:45:35Z</dc:date>
    </item>
  </channel>
</rss>

