[prev in list] [next in list] [prev in thread] [next in thread] 

List:       sas-l
Subject:    Re: non-missing from multiple variables
From:       Barry Grau <barry.grau () GMAIL ! COM>
Date:       2023-01-24 21:16:59
Message-ID: CAKgpJ_YGE1LYgqj5ZuSQAg+atM-iPc_sHtvmimRe6RNm5_f95Q () mail ! gmail ! com
[Download RAW message or body]

Data Have;
 Infile cards missover;
 Input id (admit discharg admit1 discharg1 admit2 discharge2) (:mmddyy10.);
 Format admit discharg admit1 discharg1 admit2 discharge2 e8601da.;
 cards;
01 03/25/2020 03/31/2020 03/31/2020 04/13/2020
02 03/27/2020 04/26/2020 04/28/2020 04/30/2020
03 03/27/2020 04/17/2020
04 03/29/2020 04/16/2020 03/30/2020 04/05/2020
05 03/30/2020 04/01/2020 03/29/2020 03/29/2020
06 03/30/2020 04/01/2020 03/30/2020 03/30/2020 03/30/2020 04/01/2020
07 04/10/2020 04/25/2020
08 03/30/2020 04/08/2020 04/13/2020 04/18/2020
09 04/03/2020 04/26/2020 04/29/2020 05/02/2020
;
Title "Have";
Proc Print; Run;


Like this?

Data Want;
    Set Have;
    If range(OF admit:)>0 OR range(OF discharg:)>0 ;
    Run;
Title "Want";
Proc Print; Run;

Have

                                                                      10:17
Monday, January 23, 2023   4

Obs    id      admit        discharg       admit1      discharg1
admit2      discharge2

 1      1    2020-03-25    2020-03-31    2020-03-31    2020-04-13
  .             .
 2      2    2020-03-27    2020-04-26    2020-04-28    2020-04-30
  .             .
 3      3    2020-03-27    2020-04-17             .             .
  .             .
 4      4    2020-03-29    2020-04-16    2020-03-30    2020-04-05
  .             .
 5      5    2020-03-30    2020-04-01    2020-03-29    2020-03-29
  .             .
 6      6    2020-03-30    2020-04-01    2020-03-30    2020-03-30
 2020-03-30    2020-04-01
 7      7    2020-04-10    2020-04-25             .             .
  .             .
 8      8    2020-03-30    2020-04-08    2020-04-13    2020-04-18
  .             .
 9      9    2020-04-03    2020-04-26    2020-04-29    2020-05-02
  .             .

Want

                                                                      10:17
Monday, January 23, 2023   5

Obs    id      admit        discharg       admit1      discharg1
admit2      discharge2

 1      1    2020-03-25    2020-03-31    2020-03-31    2020-04-13
  .             .
 2      2    2020-03-27    2020-04-26    2020-04-28    2020-04-30
  .             .
 3      4    2020-03-29    2020-04-16    2020-03-30    2020-04-05
  .             .
 4      5    2020-03-30    2020-04-01    2020-03-29    2020-03-29
  .             .
 5      6    2020-03-30    2020-04-01    2020-03-30    2020-03-30
 2020-03-30    2020-04-01
 6      8    2020-03-30    2020-04-08    2020-04-13    2020-04-18
  .             .
 7      9    2020-04-03    2020-04-26    2020-04-29    2020-05-02
  .             .


On Tue, Jan 24, 2023 at 3:37 PM Stanford Mwasongwe <smwasongwe@gmail.com>
wrote:

> Hi all,
> I was meant to post a sample data in the am but I got really swamped up,
> below is the sample data have
> id admit  discharg          admit1 discharg1       admit2 discharge2
> 01 03/25/2020 03/31/2020 03/31/2020 04/13/2020
> 02 03/27/2020 04/26/2020 04/28/2020 04/30/2020
> 03 03/27/2020 04/17/2020
> 04 03/29/2020 04/16/2020 03/30/2020 04/05/2020
> 05 03/30/2020 04/01/2020 03/29/2020 03/29/2020
> 06 03/30/2020 04/01/2020 03/30/2020 03/30/2020 03/30/2020 04/01/2020
> 07 04/10/2020 04/25/2020
> 08 03/30/2020 04/08/2020 04/13/2020 04/18/2020
> 09 04/03/2020 04/26/2020 04/29/2020 05/02/2020
> Here is what I want
>
> id admit  discharg          admit1 discharg1        admit2 discharge2
> 01 03/25/2020 03/31/2020 03/31/2020 04/13/2020
> 02 03/27/2020 04/26/2020 04/28/2020 04/30/2020
> 04 03/29/2020 04/16/2020 03/30/2020 04/05/2020
> 05 03/30/2020 04/01/2020 03/29/2020 03/29/2020
> 06 03/30/2020 04/01/2020 03/30/2020 03/30/2020 03/30/2020 04/01/2020
> 08 03/30/2020 04/08/2020 04/13/2020 04/18/2020
> 09 04/03/2020 04/26/2020 04/29/2020 05/02/2020
>
> records 01 and 07 are removed, just leaving those with more than one
> admissions, I hope this helps to explain my problem.
> Thanks
> *Stanford*
>
>
>
> On Tue, Jan 24, 2023 at 9:56 AM Barry Grau <barry.grau@gmail.com> wrote:
>
>> Hi,
>>
>> I'm still not sure I understand, but that's probably because I'm too lazy
>> to do a close reading of the thread's emails.
>>
>> If you want to find records with more than one DISTINCT admission date,
>> you can use the RANGE function to identify such records.
>>
>> multi_admDate=range(HOSPITAL_ADMIT_ADD_DT_1, HOSPITAL_ADMIT_ADD_DT_2,
>> HOSPITAL_ADMIT_ADD_DT_3)>0;
>>
>> The function will return the difference in days between the earliest
>> and latest admission date. If it's greater than 0, there are more than 1.
>>
>> B
>>
>> On Mon, Jan 23, 2023 at 9:45 PM Stanford Mwasongwe <smwasongwe@gmail.com>
>> wrote:
>>
>>> Tom et al.,
>>> What I am trying to do is to capture the non-missing values in multiple
>>> date variables:
>>>
>>>   admit_date, admit_dt1, admit_dt2, admit_dt3
>>>   disch_date, discharg_dt1, discharg_dt2, discharg_dt3
>>> I was told that our current code keep the latest admission and discharge
>>> date for those with more than one hospitalizations, I however, notice that
>>> not be the case. I want to demonstrate to my supervisor the discrepancy by
>>> printing a few observations showing the non-missing dates.
>>> I hope this explains my original intentions.
>>> Thanks
>>> *Stanford*
>>>
>>>
>>>
>>> On Mon, Jan 23, 2023 at 6:31 PM Nat Wooding <
>>> 00000a500572f1ba-dmarc-request@listserv.uga.edu> wrote:
>>>
>>>> Somewhere along the line, I got in the habit of adding the commas and
>>>> did not realize what was happening. There's always something new to learn.
>>>>
>>>> On Monday, January 23, 2023 at 06:25:43 PM EST, Joe Matise <
>>>> snoopy369@gmail.com> wrote:
>>>>
>>>>
>>>> Both syntax work fine - Nat's syntax makes one very long variable list
>>>> as a single "argument" to n, while Tom's passes several variable lists as
>>>> arguments.
>>>>
>>>> The syntax of
>>>> a:b:c
>>>>
>>>> Is a bit weird, it's not wrong per se, but I wouldn't use it;
>>>>
>>>> a: b: c (or c: if you mean to use c as a prefix)
>>>>
>>>> Is correctly spaced in my view (as the colon is an operator working on
>>>> the preceding variable prefix, it's not joining two or something like
>>>> that).  What Stanford's initial example was showing was simply that SAS
>>>> will (correctly) parse a:b:c to be identical to a: b: c since it sees the
>>>> colon as a not-legal name, function, or such component and thus is a word
>>>> separator.
>>>>
>>>> -Joe
>>>>
>>>> On Mon, Jan 23, 2023 at 3:02 PM Nat Wooding <
>>>> 00000a500572f1ba-dmarc-request@listserv.uga.edu> wrote:
>>>>
>>>> Actually, no
>>>>
>>>> 71   data a; input a1 a2 b1 b2  ;
>>>> 72   cards;
>>>>
>>>> NOTE: SAS went to a new line when INPUT statement reached past the end
>>>> of a line.
>>>> NOTE: The data set WORK.A has 2 observations and 4 variables.
>>>> NOTE: DATA statement used (Total process time):
>>>>       real time           0.21 seconds
>>>>       cpu time            0.06 seconds
>>>>
>>>>
>>>> 76   data want;set a;
>>>> 77   if n ( of a: b:) gt 1;
>>>> 78
>>>> 79   run;
>>>>
>>>> NOTE: There were 2 observations read from the data set WORK.A.
>>>> NOTE: The data set WORK.WANT has 1 observations and 4 variables.
>>>>
>>>>
>>>> On Monday, January 23, 2023 at 05:31:18 PM EST, Tom Robinson <
>>>> barefootguru@gmail.com> wrote:
>>>>
>>>>
>>>> I don't think that syntax is correct?  You need an ‘of' before each
>>>> variable list, and a colon after the last one.
>>>>
>>>> e.g.
>>>>
>>>> N (of hsptl_admission_dt:, of HOSPITAL_ADMIT_ADD_DT_1:, of
>>>> HOSPITAL_ADMIT_ADD_DT_2:, of HOSPITAL_ADMIT_ADD_DT_3:)
>>>>
>>>> Cheers
>>>>
>>>>
>>>> On 2023-01-24, at 11:00, Nat Wooding <
>>>> 00000a500572f1ba-dmarc-request@LISTSERV.UGA.EDU> wrote:
>>>>
>>>> Stanford
>>>>
>>>> I would do something like
>>>>
>>>> data data1;
>>>> set data0;
>>>> If N (of hsptl_admission_dt:
>>>> HOSPITAL_ADMIT_ADD_DT_1:HOSPITAL_ADMIT_ADD_DT_2:HOSPITAL_ADMIT_ADD_DT_3) gt
>>>> 1;;
>>>> run;
>>>>
>>>> Here's a simpler example:
>>>>
>>>>
>>>> data a; input a b c d;
>>>> cards;
>>>> 1 2 . 4
>>>> . 2 . .
>>>>
>>>> data want;set a;
>>>> if n ( of a : b : c : d) gt 1;
>>>>
>>>> run;
>>>>
>>>>
>>>> Nat Wooding
>>>> ps: I was not aware that one could use a colon between the variable
>>>> names.
>>>>
>>>> On Monday, January 23, 2023 at 04:50:49 PM EST, Stanford Mwasongwe <
>>>> smwasongwe@gmail.com> wrote:
>>>>
>>>>
>>>> Hi all,
>>>> I have a data set with more than one hospitalization admission dates,
>>>> up to three documented. I need to capture records with more than one admit
>>>> date recorded. I saw something in the community along this line but the
>>>> solution seems incomplete.
>>>>
>>>> data data1;
>>>> set data0;
>>>> nm = nmiss(of hsptl_admission_dt:
>>>> HOSPITAL_ADMIT_ADD_DT_1:HOSPITAL_ADMIT_ADD_DT_2:HOSPITAL_ADMIT_ADD_DT_3);
>>>> run;
>>>> The solution seeks to create a variable of non-missing from a list of
>>>> variables.
>>>> *Stanford*
>>>>
>>>>
>>>>

[Attachment #3 (text/html)]

<div dir="ltr"><div class="gmail_default" \
style="font-family:arial,helvetica,sans-serif;font-size:small">Data Have;<br>  Infile \
cards missover;<br>  Input id (admit discharg admit1 discharg1 admit2 discharge2) \
(:mmddyy10.);<br>  Format admit discharg admit1 discharg1 admit2 discharge2 \
e8601da.;<br>  cards;<br>01	03/25/2020	03/31/2020	03/31/2020	04/13/2020<br>02	03/27/20 \
20	04/26/2020	04/28/2020	04/30/2020	<br>03	03/27/2020	04/17/2020<br>04	03/29/2020	04/1 \
6/2020	03/30/2020	04/05/2020<br>05	03/30/2020	04/01/2020	03/29/2020	03/29/2020<br>06	0 \
3/30/2020	04/01/2020	03/30/2020	03/30/2020	03/30/2020	04/01/2020<br>07	04/10/2020	04/2 \
5/2020<br>08	03/30/2020	04/08/2020	04/13/2020	04/18/2020<br>09	04/03/2020	04/26/2020	04/29/2020	05/02/2020<br>;<br>Title \
&quot;Have&quot;;<br>Proc Print; Run;</div><div class="gmail_default" \
style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div \
class="gmail_default" \
style="font-family:arial,helvetica,sans-serif;font-size:small"><br>Like this?  \
</div><div class="gmail_default" \
style="font-family:arial,helvetica,sans-serif;font-size:small"><br>Data Want;<br>     \
Set Have;<br>      If range(OF admit:)&gt;0 OR range(OF discharg:)&gt;0 ;<br>      \
Run;<br>Title &quot;Want&quot;;<br>Proc Print; Run;<br></div><div \
class="gmail_default" \
style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div \
class="gmail_default" \
style="font-family:arial,helvetica,sans-serif;font-size:small">Have                   \
10:17 Monday, January 23, 2023    4<br><br>Obs      id         admit            \
discharg          admit1         discharg1          admit2         discharge2<br><br> \
1         1      2020-03-25      2020-03-31      2020-03-31      2020-04-13           \
.                   .<br>  2         2      2020-03-27      2020-04-26      \
2020-04-28      2020-04-30                   .                   .<br>  3         3   \
2020-03-27      2020-04-17                   .                   .                   \
.                   .<br>  4         4      2020-03-29      2020-04-16      \
2020-03-30      2020-04-05                   .                   .<br>  5         5   \
2020-03-30      2020-04-01      2020-03-29      2020-03-29                   .        \
.<br>  6         6      2020-03-30      2020-04-01      2020-03-30      2020-03-30    \
2020-03-30      2020-04-01<br>  7         7      2020-04-10      2020-04-25           \
.                   .                   .                   .<br>  8         8      \
2020-03-30      2020-04-08      2020-04-13      2020-04-18                   .        \
.<br>  9         9      2020-04-03      2020-04-26      2020-04-29      2020-05-02    \
.                   .<br><br>Want                                                    \
10:17 Monday, January 23, 2023    5<br><br>Obs      id         admit            \
discharg          admit1         discharg1          admit2         discharge2<br><br> \
1         1      2020-03-25      2020-03-31      2020-03-31      2020-04-13           \
.                   .<br>  2         2      2020-03-27      2020-04-26      \
2020-04-28      2020-04-30                   .                   .<br>  3         4   \
2020-03-29      2020-04-16      2020-03-30      2020-04-05                   .        \
.<br>  4         5      2020-03-30      2020-04-01      2020-03-29      2020-03-29    \
.                   .<br>  5         6      2020-03-30      2020-04-01      \
2020-03-30      2020-03-30      2020-03-30      2020-04-01<br>  6         8      \
2020-03-30      2020-04-08      2020-04-13      2020-04-18                   .        \
.<br>  7         9      2020-04-03      2020-04-26      2020-04-29      2020-05-02    \
.                   .<br><br></div></div><br><div class="gmail_quote"><div dir="ltr" \
class="gmail_attr">On Tue, Jan 24, 2023 at 3:37 PM Stanford Mwasongwe &lt;<a \
href="mailto:smwasongwe@gmail.com">smwasongwe@gmail.com</a>&gt; \
wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div \
dir="ltr"><div dir="ltr"><div class="gmail_default" \
style="font-family:verdana,sans-serif">Hi all,</div><div class="gmail_default" \
style="font-family:verdana,sans-serif">I was meant to post a sample data in the am \
but I got really swamped up, below is the sample data have</div><div \
class="gmail_default"><div class="gmail_default"><font face="verdana, \
sans-serif">id<span style="white-space:pre-wrap">	</span>admit  <span \
style="white-space:pre-wrap">		</span>discharg  <span \
style="white-space:pre-wrap">	</span>            admit1<span \
style="white-space:pre-wrap">		</span>discharg1<span \
style="white-space:pre-wrap">	</span>         admit2<span \
style="white-space:pre-wrap">		</span>discharge2</font></div><div \
class="gmail_default"><font face="verdana, sans-serif">01<span \
style="white-space:pre-wrap">	</span>03/25/2020<span \
style="white-space:pre-wrap">	</span>03/31/2020<span \
style="white-space:pre-wrap">	</span>03/31/2020<span \
style="white-space:pre-wrap">	</span>04/13/2020</font></div><div \
class="gmail_default"><font face="verdana, sans-serif">02<span \
style="white-space:pre-wrap">	</span>03/27/2020<span \
style="white-space:pre-wrap">	</span>04/26/2020<span \
style="white-space:pre-wrap">	</span>04/28/2020<span \
style="white-space:pre-wrap">	</span>04/30/2020<span \
style="white-space:pre-wrap">	</span></font></div><div class="gmail_default"><font \
face="verdana, sans-serif">03<span \
style="white-space:pre-wrap">	</span>03/27/2020<span \
style="white-space:pre-wrap">	</span>04/17/2020</font></div><div \
class="gmail_default"><font face="verdana, sans-serif">04<span \
style="white-space:pre-wrap">	</span>03/29/2020<span \
style="white-space:pre-wrap">	</span>04/16/2020<span \
style="white-space:pre-wrap">	</span>03/30/2020<span \
style="white-space:pre-wrap">	</span>04/05/2020</font></div><div \
class="gmail_default"><font face="verdana, sans-serif">05<span \
style="white-space:pre-wrap">	</span>03/30/2020<span \
style="white-space:pre-wrap">	</span>04/01/2020<span \
style="white-space:pre-wrap">	</span>03/29/2020<span \
style="white-space:pre-wrap">	</span>03/29/2020</font></div><div \
class="gmail_default"><font face="verdana, sans-serif">06<span \
style="white-space:pre-wrap">	</span>03/30/2020<span \
style="white-space:pre-wrap">	</span>04/01/2020<span \
style="white-space:pre-wrap">	</span>03/30/2020<span \
style="white-space:pre-wrap">	</span>03/30/2020<span \
style="white-space:pre-wrap">	</span>03/30/2020<span \
style="white-space:pre-wrap">	</span>04/01/2020</font></div><div \
class="gmail_default"><font face="verdana, sans-serif">07<span \
style="white-space:pre-wrap">	</span>04/10/2020<span \
style="white-space:pre-wrap">	</span>04/25/2020</font></div><div \
class="gmail_default"><font face="verdana, sans-serif">08<span \
style="white-space:pre-wrap">	</span>03/30/2020<span \
style="white-space:pre-wrap">	</span>04/08/2020<span \
style="white-space:pre-wrap">	</span>04/13/2020<span \
style="white-space:pre-wrap">	</span>04/18/2020</font></div><div \
class="gmail_default"><font face="verdana, sans-serif">09<span \
style="white-space:pre-wrap">	</span>04/03/2020<span \
style="white-space:pre-wrap">	</span>04/26/2020<span \
style="white-space:pre-wrap">	</span>04/29/2020<span \
style="white-space:pre-wrap">	</span>05/02/2020</font></div><div \
class="gmail_default"><font face="verdana, sans-serif">Here is what I \
want</font></div><div class="gmail_default"><font face="verdana, \
sans-serif"><br></font></div><div class="gmail_default"><font face="verdana, \
sans-serif"><div class="gmail_default">id<span \
style="white-space:pre-wrap">	</span>admit  <span \
style="white-space:pre-wrap">		</span>discharg  <span \
style="white-space:pre-wrap">	</span>            admit1<span \
style="white-space:pre-wrap">		</span>discharg1<span \
style="white-space:pre-wrap">	</span>           admit2<span \
style="white-space:pre-wrap">		</span>discharge2</div><div \
class="gmail_default">01<span style="white-space:pre-wrap">	</span>03/25/2020<span \
style="white-space:pre-wrap">	</span>03/31/2020<span \
style="white-space:pre-wrap">	</span>03/31/2020<span \
style="white-space:pre-wrap">	</span>04/13/2020</div><div \
class="gmail_default">02<span style="white-space:pre-wrap">	</span>03/27/2020<span \
style="white-space:pre-wrap">	</span>04/26/2020<span \
style="white-space:pre-wrap">	</span>04/28/2020<span \
style="white-space:pre-wrap">	</span>04/30/2020<span \
style="white-space:pre-wrap">	</span></div><div class="gmail_default">04<span \
style="white-space:pre-wrap">	</span>03/29/2020<span \
style="white-space:pre-wrap">	</span>04/16/2020<span \
style="white-space:pre-wrap">	</span>03/30/2020<span \
style="white-space:pre-wrap">	</span>04/05/2020</div><div \
class="gmail_default">05<span style="white-space:pre-wrap">	</span>03/30/2020<span \
style="white-space:pre-wrap">	</span>04/01/2020<span \
style="white-space:pre-wrap">	</span>03/29/2020<span \
style="white-space:pre-wrap">	</span>03/29/2020</div><div \
class="gmail_default">06<span style="white-space:pre-wrap">	</span>03/30/2020<span \
style="white-space:pre-wrap">	</span>04/01/2020<span \
style="white-space:pre-wrap">	</span>03/30/2020<span \
style="white-space:pre-wrap">	</span>03/30/2020<span \
style="white-space:pre-wrap">	</span>03/30/2020<span \
style="white-space:pre-wrap">	</span>04/01/2020</div><div \
class="gmail_default">08<span style="white-space:pre-wrap">	</span>03/30/2020<span \
style="white-space:pre-wrap">	</span>04/08/2020<span \
style="white-space:pre-wrap">	</span>04/13/2020<span \
style="white-space:pre-wrap">	</span>04/18/2020</div><div \
class="gmail_default">09<span style="white-space:pre-wrap">	</span>04/03/2020<span \
style="white-space:pre-wrap">	</span>04/26/2020<span \
style="white-space:pre-wrap">	</span>04/29/2020<span \
style="white-space:pre-wrap">	</span>05/02/2020</div><div \
class="gmail_default"><br></div><div class="gmail_default">records 01 and 07 are \
removed, just leaving those with more than one admissions, I hope this helps to \
explain my problem.</div><div \
class="gmail_default">Thanks</div></font></div></div><div><div dir="ltr"><div \
dir="ltr"><div><span style="font-size:x-small"><font size="2"><font><span \
style="font-size:10pt"><font face="bookman old style, new york, times, serif" \
color="#444444"><b>Stanford</b></font></span></font></font></span></div><div><br></div></div></div></div><br></div></div></div><br><div \
class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 24, 2023 at 9:56 AM \
Barry Grau &lt;<a href="mailto:barry.grau@gmail.com" \
target="_blank">barry.grau@gmail.com</a>&gt; wrote:<br></div><blockquote \
class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_default" \
style="font-family:arial,helvetica,sans-serif;font-size:small">Hi,  </div><div \
class="gmail_default" \
style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div \
class="gmail_default" \
style="font-family:arial,helvetica,sans-serif;font-size:small">I&#39;m still not sure \
I understand, but that&#39;s probably because I&#39;m too lazy to do a close reading \
of the thread&#39;s emails.</div><div class="gmail_default" \
style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div \
class="gmail_default" \
style="font-family:arial,helvetica,sans-serif;font-size:small">If you want to find \
records with more than one DISTINCT admission date, you can use the RANGE function to \
identify such records.</div><div class="gmail_default" \
style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div \
class="gmail_default" \
style="font-family:arial,helvetica,sans-serif;font-size:small">multi_admDate=range(<span \
style="font-family:verdana,sans-serif">HOSPITAL_ADMIT_ADD_DT_1,  </span><span \
style="font-family:verdana,sans-serif">HOSPITAL_ADMIT_ADD_DT_2,  </span><span \
style="font-family:verdana,sans-serif">HOSPITAL_ADMIT_ADD_DT_3</span>)&gt;0;</div><div \
class="gmail_default" \
style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div \
class="gmail_default" \
style="font-family:arial,helvetica,sans-serif;font-size:small">The function will \
return the difference in days between the earliest and  latest admission date. If \
it&#39;s greater than 0, there are more than 1.</div><div class="gmail_default" \
style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div \
class="gmail_default" \
style="font-family:arial,helvetica,sans-serif;font-size:small">B</div></div><br><div \
class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jan 23, 2023 at 9:45 PM \
Stanford Mwasongwe &lt;<a href="mailto:smwasongwe@gmail.com" \
target="_blank">smwasongwe@gmail.com</a>&gt; wrote:<br></div><blockquote \
class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_default" \
style="font-family:verdana,sans-serif">Tom et al.,</div><div class="gmail_default" \
style="font-family:verdana,sans-serif">What I am trying to do is to capture the \
non-missing values in multiple date variables:</div><div class="gmail_default" \
style="font-family:verdana,sans-serif">    </div><div class="gmail_default" \
style="font-family:verdana,sans-serif">   admit_date, admit_dt1, admit_dt2, \
admit_dt3</div><div class="gmail_default" style="font-family:verdana,sans-serif">   \
disch_date, discharg_dt1, discharg_dt2, discharg_dt3</div><div class="gmail_default" \
style="font-family:verdana,sans-serif">I was told that our current code keep the \
latest admission and discharge date for those with more than one hospitalizations, I \
however, notice that not be the case. I want to demonstrate  to my supervisor  the \
        <div dir="ltr">Somewhere along the line, I got in the habit of adding the \
commas and did not realize what was happening. There&#39;s always something new to \
learn.</div><div><br></div>  
        </div><div id="m_8930384402996109817m_5604951505219673112m_-7715076393615425538m_-6154657571514225413ydp65ba796cyahoo_quoted_4762880991">
                
            <div style="font-family:&quot;Helvetica \
Neue&quot;,Helvetica,Arial,sans-serif;font-size:13px;color:rgb(38,40,42)">  
                <div>
                    On Monday, January 23, 2023 at 06:25:43 PM EST, Joe Matise &lt;<a \
href="mailto:snoopy369@gmail.com" target="_blank">snoopy369@gmail.com</a>&gt; wrote:  \
</div>  <div><br></div>
                <div><br></div>
                <div><div \
id="m_8930384402996109817m_5604951505219673112m_-7715076393615425538m_-6154657571514225413ydp65ba796cyiv9822672528"><div><div \
dir="ltr">Both syntax  work fine - Nat&#39;s syntax makes one very long variable list \
as a single &quot;argument&quot; to n, while Tom&#39;s passes several variable lists \
as arguments.   <div><br clear="none"></div><div>The syntax \
of</div><div>a:b:c</div><div><br clear="none"></div><div>Is a bit weird, it&#39;s not \
wrong per se, but I wouldn&#39;t use it;  </div><div><br clear="none"></div><div>a: \
b: c (or c: if you mean to use c as a prefix)</div><div><br \
clear="none"></div><div>Is correctly spaced in my view (as the colon is an operator \
working on the preceding variable prefix, it&#39;s not joining two or something like \
that).   What Stanford&#39;s initial example was showing was simply that SAS will \
(correctly) parse a:b:c to be identical  to a: b: c since it sees the colon as a \
not-legal name, function, or such component and thus is a word \
separator.</div><div><br clear="none"></div><div>-Joe</div></div><br \
clear="none"><div id="m_8930384402996109817m_5604951505219673112m_-7715076393615425538m_-6154657571514225413ydp65ba796cyiv9822672528yqt99059"><div><div \
dir="ltr">On Mon, Jan 23, 2023 at 3:02 PM Nat Wooding &lt;<a shape="rect" \
href="mailto:00000a500572f1ba-dmarc-request@listserv.uga.edu" rel="nofollow" \
target="_blank">00000a500572f1ba-dmarc-request@listserv.uga.edu</a>&gt; wrote:<br \
clear="none"></div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"><div><div \
style="font-family:Helvetica,Arial,sans-serif;font-size:13px"><div></div>  \
<div><div><div dir="ltr" \
style="color:rgb(0,0,0);font-family:Helvetica,Arial,sans-serif">Actually, \
no</div><div dir="ltr" \
style="color:rgb(0,0,0);font-family:Helvetica,Arial,sans-serif"><br \
clear="none"></div><div dir="ltr" \
style="color:rgb(0,0,0);font-family:Helvetica,Arial,sans-serif"><div>71     data a; \
input a1 a2 b1 b2   ;</div><div>72     cards;</div><div><br \
clear="none"></div><div>NOTE: SAS went to a new line when INPUT statement reached \
past the end of a line.</div><div>NOTE: The data set WORK.A has 2 observations and 4 \
variables.</div><div>NOTE: DATA statement used (Total process time):</div><div>       \
real time                 0.21 seconds</div><div>         cpu time                  \
0.06 seconds</div><div><br clear="none"></div><div><br clear="none"></div><div>76     \
data want;set a;</div><div>77     if n ( of a: b:) gt 1;</div><div>78</div><div>79    \
run;</div><div><br clear="none"></div><div>NOTE: There were 2 observations read from \
the data set WORK.A.</div><div dir="ltr">NOTE: The data set WORK.WANT has 1 \
observations and 4 variables.</div></div></div><br clear="none"></div><div><br \
clear="none"></div>  
        </div><div id="m_8930384402996109817m_5604951505219673112m_-771507639361542553 \
8m_-6154657571514225413ydp65ba796cyiv9822672528m_5632745062405487910ydpc16b442eyahoo_quoted_4558435376">
                
            <div style="font-family:Helvetica,Arial,sans-serif;font-size:13px;color:rgb(38,40,42)">
  
                <div>
                    On Monday, January 23, 2023 at 05:31:18 PM EST, Tom Robinson \
&lt;<a shape="rect" href="mailto:barefootguru@gmail.com" rel="nofollow" \
target="_blank">barefootguru@gmail.com</a>&gt; wrote:  </div>
                <div><br clear="none"></div>
                <div><br clear="none"></div>
                <div><div \
id="m_8930384402996109817m_5604951505219673112m_-7715076393615425538m_-615465757151422 \
5413ydp65ba796cyiv9822672528m_5632745062405487910ydpc16b442eyiv6740707208"><div>I \
don't think that syntax is correct?   You need an ‘of' before each variable list, \
and a colon after the last one.<div><br clear="none"></div><div>e.g.</div><div><br \
clear="none"></div><div>N (of hsptl_admission_dt:, of HOSPITAL_ADMIT_ADD_DT_1:, of \
HOSPITAL_ADMIT_ADD_DT_2:, of HOSPITAL_ADMIT_ADD_DT_3:)</div><div><br \
clear="none"></div><div>Cheers<div><div \
id="m_8930384402996109817m_5604951505219673112m_-7715076393615425538m_-615465757151422 \
5413ydp65ba796cyiv9822672528m_5632745062405487910ydpc16b442eyiv6740707208yqt75392"><div><br \
clear="none"><div><br clear="none"><blockquote type="cite"><div>On 2023-01-24, at \
11:00, Nat Wooding &lt;<a shape="rect" \
href="mailto:00000a500572f1ba-dmarc-request@LISTSERV.UGA.EDU" rel="nofollow" \
target="_blank">00000a500572f1ba-dmarc-request@LISTSERV.UGA.EDU</a>&gt; \
wrote:</div><br clear="none"><div><div><div \
style="font-family:Helvetica,Arial,sans-serif;font-size:13px"><div></div>  <div \
dir="ltr">Stanford</div><div dir="ltr"><br clear="none"></div><div dir="ltr">I would \
do something like</div><div dir="ltr"><br clear="none"></div><div dir="ltr"><div><div \
style="font-family:verdana,sans-serif">data data1;</div><div \
style="font-family:verdana,sans-serif"><span style="white-space:pre-wrap">	</span>set \
data0;</div><div dir="ltr" style="font-family:verdana,sans-serif"><span \
style="white-space:pre-wrap">	</span>If N <span><span \
style="color:rgb(38,40,42);font-family:verdana,sans-serif">(of hsptl_admission_dt: \
HOSPITAL_ADMIT_ADD_DT_1:HOSPITAL_ADMIT_ADD_DT_2:HOSPITAL_ADMIT_ADD_DT_3)</span></span> \
gt 1;;</div></div><div dir="ltr" \
style="font-family:verdana,sans-serif">run;</div></div>  </div><div dir="ltr" \
style="font-family:Helvetica,Arial,sans-serif;font-size:13px">Here&#39;s a simpler \
example:</div><div dir="ltr" \
style="font-family:Helvetica,Arial,sans-serif;font-size:13px"><br \
clear="none"></div><div dir="ltr" \
style="font-family:Helvetica,Arial,sans-serif;font-size:13px"><div><div>    \
</div><div>data a; input a b c d;</div><div>cards;</div><div>1 2 . 4</div><div>. 2 . \
.</div><div><br clear="none"></div><div>data want;set a;</div><div>if n ( of a : b : \
c : d) gt 1;</div><div><span style="white-space:pre-wrap">	</span>    \
</div><div>run;</div></div><div dir="ltr" \
style="font-family:Helvetica,Arial,sans-serif;font-size:13px"><br \
clear="none"></div><div dir="ltr" \
style="font-family:Helvetica,Arial,sans-serif;font-size:13px"><br \
clear="none"></div>Nat Wooding</div><div dir="ltr" \
style="font-family:Helvetica,Arial,sans-serif;font-size:13px">ps: I was not aware \
that one could use a colon between the variable names.<br clear="none"><div><br \
clear="none"></div>  
        </div><div id="m_8930384402996109817m_5604951505219673112m_-771507639361542553 \
8m_-6154657571514225413ydp65ba796cyiv9822672528m_5632745062405487910ydpc16b442eyiv6740707208ydpbd972ba7yahoo_quoted_5465573951">
                
            <div style="font-family:Helvetica,Arial,sans-serif;font-size:13px;color:rgb(38,40,42)">
  
                <div>
                    On Monday, January 23, 2023 at 04:50:49 PM EST, Stanford \
Mwasongwe &lt;<a shape="rect" href="mailto:smwasongwe@gmail.com" rel="nofollow" \
target="_blank">smwasongwe@gmail.com</a>&gt; wrote:  </div>
                <div><br clear="none"></div>
                <div><br clear="none"></div>
                <div><div \
id="m_8930384402996109817m_5604951505219673112m_-7715076393615425538m_-615465757151422 \
5413ydp65ba796cyiv9822672528m_5632745062405487910ydpc16b442eyiv6740707208ydpbd972ba7yiv1130246999"><div \
dir="ltr"><div dir="ltr"><div style="font-family:verdana,sans-serif">Hi \
all,</div><div style="font-family:verdana,sans-serif">I have a data set with more \
than one hospitalization admission  dates, up to three documented. I need to capture \
records with more than one admit date recorded. I saw something in the community \
along this line but the solution seems incomplete.</div><div \
style="font-family:verdana,sans-serif"><br clear="none"></div><div \
style="font-family:verdana,sans-serif"><div>data data1;</div><div><span \
style="white-space:pre-wrap">	</span>set data0;</div><div><span \
style="white-space:pre-wrap">	</span>nm = nmiss(of hsptl_admission_dt: \
HOSPITAL_ADMIT_ADD_DT_1:HOSPITAL_ADMIT_ADD_DT_2:HOSPITAL_ADMIT_ADD_DT_3);</div><div>run;</div><div>The \
solution seeks to create a variable of non-missing from a list of \
variables.</div></div><div><div dir="ltr"><div dir="ltr"><div><span \
style="font-size:x-small"><font size="2" style="background-color:inherit"><font><span \
style="font-size:10pt"><font face="bookman old style, new york, times, serif" \
color="#444444" style="background-color:inherit"><b>Stanford</b></font></span></font></font></span></div><div><br \
clear="none"></div></div></div></div></div></div> </div></div>
            </div>
        </div></div></div></blockquote></div><br \
clear="none"></div></div></div></div></div></div></div>  </div>
        </div></div></blockquote></div></div>
</div></div></div>
            </div>
        </div></div></blockquote></div>
</blockquote></div>
</blockquote></div>
</blockquote></div>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic