<?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: Delete overlapping observation by participant in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845264#M334152</link>
    <description>&lt;P&gt;OK, if you just want to have a "clean" intermediary table, than you could use proc sort:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data work.TestData;
	infile datalines dsd;
	input FID MOOD ANXIETY EAT DEVELOP;
datalines;	
1, ,1, , 
1, , ,1, 
1,1, , , 
1,1, , , 
2, , ,1, 
2, ,1, , 
2, , ,1, 
3, ,1, , 
3,1, , , 
;
run;

PROC SORT DATA = work.TestData NODUPKEY out=work.testdata2;
BY MOOD ANXIETY EAT;
RUN;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Sat, 19 Nov 2022 16:23:31 GMT</pubDate>
    <dc:creator>fja</dc:creator>
    <dc:date>2022-11-19T16:23:31Z</dc:date>
    <item>
      <title>Delete overlapping observation by participant</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845259#M334147</link>
      <description>&lt;P&gt;I have a patient dataset with multiple observations and variable. I need to delete overlapping observations for each participant. See example below.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;HAVE&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;FID&lt;/TD&gt;&lt;TD&gt;MOOD&lt;/TD&gt;&lt;TD&gt;ANXIETY&lt;/TD&gt;&lt;TD&gt;EAT&lt;/TD&gt;&lt;TD&gt;DEVELOP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&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;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&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;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;WANT&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;FID&lt;/TD&gt;&lt;TD&gt;MOOD&lt;/TD&gt;&lt;TD&gt;ANXIETY&lt;/TD&gt;&lt;TD&gt;EAT&lt;/TD&gt;&lt;TD&gt;DEVELOP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&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;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&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;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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>Sat, 19 Nov 2022 15:09:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845259#M334147</guid>
      <dc:creator>JLang055</dc:creator>
      <dc:date>2022-11-19T15:09:07Z</dc:date>
    </item>
    <item>
      <title>Re: Delete overlapping observation by participant</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845260#M334148</link>
      <description>Hello!&lt;BR /&gt;Would you like to filter an existing dataset or would you prevent the insertion of superfluous observations?&lt;BR /&gt;--fja</description>
      <pubDate>Sat, 19 Nov 2022 15:21:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845260#M334148</guid>
      <dc:creator>fja</dc:creator>
      <dc:date>2022-11-19T15:21:17Z</dc:date>
    </item>
    <item>
      <title>Re: Delete overlapping observation by participant</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845262#M334150</link>
      <description>&lt;P&gt;Im trying to prevent double counting a participant in specific categories.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 19 Nov 2022 15:31:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845262#M334150</guid>
      <dc:creator>JLang055</dc:creator>
      <dc:date>2022-11-19T15:31:53Z</dc:date>
    </item>
    <item>
      <title>Re: Delete overlapping observation by participant</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845263#M334151</link>
      <description>&lt;P&gt;What about defining an index with option unique?&lt;/P&gt;
&lt;P&gt;--fja&lt;/P&gt;</description>
      <pubDate>Sat, 19 Nov 2022 16:01:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845263#M334151</guid>
      <dc:creator>fja</dc:creator>
      <dc:date>2022-11-19T16:01:02Z</dc:date>
    </item>
    <item>
      <title>Re: Delete overlapping observation by participant</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845264#M334152</link>
      <description>&lt;P&gt;OK, if you just want to have a "clean" intermediary table, than you could use proc sort:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data work.TestData;
	infile datalines dsd;
	input FID MOOD ANXIETY EAT DEVELOP;
datalines;	
1, ,1, , 
1, , ,1, 
1,1, , , 
1,1, , , 
2, , ,1, 
2, ,1, , 
2, , ,1, 
3, ,1, , 
3,1, , , 
;
run;

PROC SORT DATA = work.TestData NODUPKEY out=work.testdata2;
BY MOOD ANXIETY EAT;
RUN;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 19 Nov 2022 16:23:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845264#M334152</guid>
      <dc:creator>fja</dc:creator>
      <dc:date>2022-11-19T16:23:31Z</dc:date>
    </item>
    <item>
      <title>Re: Delete overlapping observation by participant</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845275#M334159</link>
      <description>&lt;P&gt;For data like that with values that are&amp;nbsp;either 1 or missing I would probably just collapse to one observation per subject.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
  update have(obs=0) have;
  by fid;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;Obs    FID    MOOD    ANXIETY    EAT    DEVELOP

 1      1       1        1        1        .
 2      2       .        1        1        .
 3      3       1        1        .        .
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 19 Nov 2022 19:41:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845275#M334159</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2022-11-19T19:41:37Z</dc:date>
    </item>
    <item>
      <title>Re: Delete overlapping observation by participant</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845279#M334163</link>
      <description>That resulted in a more sane looking dataset, agreed. It is just that &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/420778"&gt;@JLang055&lt;/a&gt; asked for a different kind of output. &lt;BR /&gt;--fja</description>
      <pubDate>Sat, 19 Nov 2022 22:14:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845279#M334163</guid>
      <dc:creator>fja</dc:creator>
      <dc:date>2022-11-19T22:14:23Z</dc:date>
    </item>
    <item>
      <title>Re: Delete overlapping observation by participant</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845280#M334164</link>
      <description>&lt;P&gt;Below should create what you're asking for.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=have out=want nodupkey;
  by _all_;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Code not tested because data not provided in a form that doesn't require work to use it directly in code (i.e. a fully working SAS data step creating the data).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 19 Nov 2022 22:30:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845280#M334164</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2022-11-19T22:30:47Z</dc:date>
    </item>
    <item>
      <title>Re: Delete overlapping observation by participant</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845304#M334172</link>
      <description>&lt;P&gt;This program will keep the first instance of each unique combination of variables:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
	infile datalines dsd;
	input FID MOOD ANXIETY EAT DEVELOP;
datalines;	
1, ,1, , 
1, , ,1, 
1,1, , , 
1,1, , , 
2, , ,1, 
2, ,1, , 
2, , ,1, 
3, ,1, , 
3,1, , , 
;
run;
data want;
  set have;
  if _n_=1 then do;
    declare hash h (dataset:'have (obs=0)');
      h.definekey(all:'Y');
      h.definedone();
  end;
  if h.add()=0 ;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The hash object is "keyed" on all the variables in dataset have (think of it as using a compound index based on the combination of all variables).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The hash method ADD will be successful (i.e. h.add()=0) only when there is not already a dataitem (i.e. a "row") in it with the same combination of variables.&amp;nbsp; As a result the dataset does not even need to be sorted, even by FID.&lt;/P&gt;</description>
      <pubDate>Sun, 20 Nov 2022 02:48:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845304#M334172</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2022-11-20T02:48:15Z</dc:date>
    </item>
    <item>
      <title>Re: Delete overlapping observation by participant</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845371#M334205</link>
      <description>&lt;P&gt;I think this could be a good option. When I run the code you suggest I run into the following error:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;NOTE: Writing TAGSETS.SASREPORT13(EGSR) Body file: EGSR
24         
25         GOPTIONS ACCESSIBLE;
26         data DIAG_FULL_F;
27         	update have(obs=0) have;
ERROR: File WORK.HAVE.DATA does not exist.
ERROR: File WORK.HAVE.DATA does not exist.
28         	by FID;
29         run;

NOTE: The SAS System stopped processing this step because of errors.
WARNING: The data set WORK.DIAG_FULL_F may be incomplete.  When this step was stopped there were 0 observations and 0 variables.
WARNING: Data set WORK.DIAG_FULL_F was not replaced because this step was stopped.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.01 seconds&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Do you have any idea whats going on with it?&lt;/P&gt;</description>
      <pubDate>Sun, 20 Nov 2022 22:12:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845371#M334205</guid>
      <dc:creator>JLang055</dc:creator>
      <dc:date>2022-11-20T22:12:08Z</dc:date>
    </item>
    <item>
      <title>Re: Delete overlapping observation by participant</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845373#M334207</link>
      <description>&lt;PRE&gt;ERROR: File WORK.HAVE.DATA does not exist.&lt;/PRE&gt;
&lt;P&gt;What could be more clear than this? You need to create the HAVE (the name&amp;nbsp;&lt;EM&gt;you&lt;/EM&gt; used in your initial post) dataset before you can use it.&lt;/P&gt;</description>
      <pubDate>Sun, 20 Nov 2022 23:13:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845373#M334207</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2022-11-20T23:13:56Z</dc:date>
    </item>
    <item>
      <title>Re: Delete overlapping observation by participant</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845375#M334208</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;I took&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/159"&gt;@Tom&lt;/a&gt;&amp;nbsp;suggestion to merge all the data into one single row per participant. I ran some code that worked for me.&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;%macro count (Var); *create new diagnosis count variable;

proc summary data=DIAG_FULL; 
	var &amp;amp;var;

	by FID;

	output out=&amp;amp;var sum=;
run;

data &amp;amp;VAR;
	set &amp;amp;VAR;

	IF &amp;amp;VAR &amp;gt;= 1 then &amp;amp;VAR =1;
	ELSE &amp;amp;VAR =0;

	drop _TYPE_ _FREQ_;
run;

%mend count;

%count(MOOD);
%count(ANXIETY);
%count(DEVELOP);
%count(CONDUCT);
%count(ADHD);

data CLINIC_DIAG;
	merge MOOD ANXIETY DEVELOP CONDUCT ADHD DIAG_MULTI;
	by FID;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 21 Nov 2022 02:28:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845375#M334208</guid>
      <dc:creator>JLang055</dc:creator>
      <dc:date>2022-11-21T02:28:48Z</dc:date>
    </item>
    <item>
      <title>Re: Delete overlapping observation by participant</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845413#M334225</link>
      <description>&lt;P&gt;Congratulations to your first solution then ... but could at least spear Toms posting a like. &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 21 Nov 2022 07:29:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Delete-overlapping-observation-by-participant/m-p/845413#M334225</guid>
      <dc:creator>fja</dc:creator>
      <dc:date>2022-11-21T07:29:07Z</dc:date>
    </item>
  </channel>
</rss>

