<?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: exist based on row calculation in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/exist-based-on-row-calculation/m-p/642154#M78377</link>
    <description>&lt;P&gt;Do you actually have more than 4 rows of data and want some sort of general solution? If so then you need to describe the general rules involved.&lt;/P&gt;</description>
    <pubDate>Thu, 23 Apr 2020 03:08:19 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2020-04-23T03:08:19Z</dc:date>
    <item>
      <title>exist based on row calculation</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/exist-based-on-row-calculation/m-p/642150#M78376</link>
      <description>&lt;P&gt;Hello Community,&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;CITI&lt;/TD&gt;&lt;TD&gt;LATI&lt;/TD&gt;&lt;TD&gt;LONGTI&lt;/TD&gt;&lt;TD&gt;want1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AAA&lt;/TD&gt;&lt;TD&gt;128.12&lt;/TD&gt;&lt;TD&gt;37.65&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;BBB&lt;/TD&gt;&lt;TD&gt;127.11&lt;/TD&gt;&lt;TD&gt;36.54&lt;/TD&gt;&lt;TD&gt;1.500&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;CCC&lt;/TD&gt;&lt;TD&gt;127.22&lt;/TD&gt;&lt;TD&gt;36.22&lt;/TD&gt;&lt;TD&gt;1.689&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;DDD&lt;/TD&gt;&lt;TD&gt;127.00&lt;/TD&gt;&lt;TD&gt;36.01&lt;/TD&gt;&lt;TD&gt;1.985&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;want1&lt;/P&gt;&lt;P&gt;sqrt((128.12-127.11)^2 + (37.65-36.54)^2)=1.500&lt;/P&gt;&lt;P&gt;sqrt((128.12-127.22)^2 + (37.65-36.22)^2)=1.689&lt;/P&gt;&lt;P&gt;sqrt((128.12-127.00)^2 + (37.65-36.01)^2)=1.985&lt;/P&gt;&lt;P&gt;want2&lt;/P&gt;&lt;P&gt;sqrt((127.11-127.22)^2 + (36.54-36.22)^2)=0.333&lt;/P&gt;&lt;P&gt;sqrt((127.11-127.00)^2 + (36.54-36.01)^2)=0.541&lt;/P&gt;</description>
      <pubDate>Thu, 23 Apr 2020 02:36:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/exist-based-on-row-calculation/m-p/642150#M78376</guid>
      <dc:creator>scad</dc:creator>
      <dc:date>2020-04-23T02:36:22Z</dc:date>
    </item>
    <item>
      <title>Re: exist based on row calculation</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/exist-based-on-row-calculation/m-p/642154#M78377</link>
      <description>&lt;P&gt;Do you actually have more than 4 rows of data and want some sort of general solution? If so then you need to describe the general rules involved.&lt;/P&gt;</description>
      <pubDate>Thu, 23 Apr 2020 03:08:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/exist-based-on-row-calculation/m-p/642154#M78377</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2020-04-23T03:08:19Z</dc:date>
    </item>
    <item>
      <title>Re: exist based on row calculation</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/exist-based-on-row-calculation/m-p/642156#M78378</link>
      <description>&lt;P&gt;Try the GEODIST() function.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://documentation.sas.com/?docsetId=lefunctionsref&amp;amp;docsetTarget=n1korpfg2e18lon1nwpow9qijdxe.htm&amp;amp;docsetVersion=9.4&amp;amp;locale=en#p04exx349ronntn148aiejhbn1fc"&gt;https://documentation.sas.com/?docsetId=lefunctionsref&amp;amp;docsetTarget=n1korpfg2e18lon1nwpow9qijdxe.htm&amp;amp;docsetVersion=9.4&amp;amp;locale=en#p04exx349ronntn148aiejhbn1fc&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There's also PROC DISTANCE with Euclidean distance that will give you a distance matrix, which is likely what you want overall.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/324544"&gt;@scad&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hello Community,&lt;/P&gt;
&lt;TABLE border="1"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;CITI&lt;/TD&gt;
&lt;TD&gt;LATI&lt;/TD&gt;
&lt;TD&gt;LONGTI&lt;/TD&gt;
&lt;TD&gt;want1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AAA&lt;/TD&gt;
&lt;TD&gt;128.12&lt;/TD&gt;
&lt;TD&gt;37.65&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BBB&lt;/TD&gt;
&lt;TD&gt;127.11&lt;/TD&gt;
&lt;TD&gt;36.54&lt;/TD&gt;
&lt;TD&gt;1.500&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;CCC&lt;/TD&gt;
&lt;TD&gt;127.22&lt;/TD&gt;
&lt;TD&gt;36.22&lt;/TD&gt;
&lt;TD&gt;1.689&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;DDD&lt;/TD&gt;
&lt;TD&gt;127.00&lt;/TD&gt;
&lt;TD&gt;36.01&lt;/TD&gt;
&lt;TD&gt;1.985&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;want1&lt;/P&gt;
&lt;P&gt;sqrt((128.12-127.11)^2 + (37.65-36.54)^2)=1.500&lt;/P&gt;
&lt;P&gt;sqrt((128.12-127.22)^2 + (37.65-36.22)^2)=1.689&lt;/P&gt;
&lt;P&gt;sqrt((128.12-127.00)^2 + (37.65-36.01)^2)=1.985&lt;/P&gt;
&lt;P&gt;want2&lt;/P&gt;
&lt;P&gt;sqrt((127.11-127.22)^2 + (36.54-36.22)^2)=0.333&lt;/P&gt;
&lt;P&gt;sqrt((127.11-127.00)^2 + (36.54-36.01)^2)=0.541&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 23 Apr 2020 04:05:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/exist-based-on-row-calculation/m-p/642156#M78378</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2020-04-23T04:05:34Z</dc:date>
    </item>
    <item>
      <title>Re: exist based on row calculation</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/exist-based-on-row-calculation/m-p/642158#M78379</link>
      <description>&lt;P&gt;GEODIST() doesn't like your parameters for some reason.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
create table want as 
select t1.ID as StartLocation, t2.ID as EndLocation,
t1.lat as lat1, t1.long as long1,
t2.lat as lat2, t2.long as long2,
sqrt((t1.lat-t2.lat)**2 + (t1.long-t2.long)**2) as distance
from have as t1, have as t2
where t1.id&amp;gt;=t2.id
order by 1, 2;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 23 Apr 2020 04:20:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/exist-based-on-row-calculation/m-p/642158#M78379</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2020-04-23T04:20:38Z</dc:date>
    </item>
    <item>
      <title>Re: exist based on row calculation</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/exist-based-on-row-calculation/m-p/642196#M78381</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/324544"&gt;@scad&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I agree with Reeza that you should use the &lt;A href="https://documentation.sas.com/?cdcId=pgmsascdc&amp;amp;cdcVersion=9.4_3.4&amp;amp;docsetId=lefunctionsref&amp;amp;docsetTarget=n1korpfg2e18lon1nwpow9qijdxe.htm&amp;amp;locale=en" target="_blank" rel="noopener"&gt;GEODIST function&lt;/A&gt; if your coordinates are latitudes and longitudes (as the variable names suggest). It looks like you interchanged&amp;nbsp;latitudes and longitudes, though: Latitudes must be between -90 (South Pole) and 90 (North Pole). After this correction all your locations would be in South Korea. Does this sound plausible? If so, you can use the code provided by Mike Zdeb in &lt;A href="https://communities.sas.com/t5/SAS-Procedures/Using-Proc-Distance-to-Calculate-Geodesic-Distance/td-p/228482" target="_blank" rel="noopener"&gt;Using Proc Distance to Calculate Geodesic Distance&lt;/A&gt;&amp;nbsp;(the title refers to the OP's question in that old thread) to compute the desired distances. Omit the last argument &lt;FONT face="courier new,courier"&gt;'m'&lt;/FONT&gt; in the GEODIST function call if you want distances in kilometres rather than miles.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The &lt;A href="https://documentation.sas.com/?docsetId=statug&amp;amp;docsetVersion=14.3&amp;amp;docsetTarget=statug_distance_overview.htm&amp;amp;locale=en" target="_blank" rel="noopener"&gt;DISTANCE procedure&lt;/A&gt; does not support geodesic distance, so the results you would obtain (with PROC DISTANCE options &lt;FONT face="courier new,courier"&gt;method=euclid nostd&lt;/FONT&gt; and VAR statement &lt;FONT face="courier new,courier"&gt;var interval(longti lati)&lt;/FONT&gt;), i.e., the "distances" 1.50073, 1.68964, etc., would be questionable.&lt;/P&gt;</description>
      <pubDate>Thu, 23 Apr 2020 10:35:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/exist-based-on-row-calculation/m-p/642196#M78381</guid>
      <dc:creator>FreelanceReinh</dc:creator>
      <dc:date>2020-04-23T10:35:32Z</dc:date>
    </item>
  </channel>
</rss>

