[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 \
"Have";<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:)>0 OR range(OF discharg:)>0 ;<br> \
Run;<br>Title "Want";<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 <<a \
href="mailto:smwasongwe@gmail.com">smwasongwe@gmail.com</a>> \
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 <<a href="mailto:barry.grau@gmail.com" \
target="_blank">barry.grau@gmail.com</a>> 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'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.</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>)>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'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 <<a href="mailto:smwasongwe@gmail.com" \
target="_blank">smwasongwe@gmail.com</a>> 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's always something new to \
learn.</div><div><br></div>
</div><div id="m_8930384402996109817m_5604951505219673112m_-7715076393615425538m_-6154657571514225413ydp65ba796cyahoo_quoted_4762880991">
<div style="font-family:"Helvetica \
Neue",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 <<a \
href="mailto:snoopy369@gmail.com" target="_blank">snoopy369@gmail.com</a>> 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's syntax makes one very long variable list \
as a single "argument" to n, while Tom'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's not \
wrong per se, but I wouldn'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'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.</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 <<a shape="rect" \
href="mailto:00000a500572f1ba-dmarc-request@listserv.uga.edu" rel="nofollow" \
target="_blank">00000a500572f1ba-dmarc-request@listserv.uga.edu</a>> 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 \
<<a shape="rect" href="mailto:barefootguru@gmail.com" rel="nofollow" \
target="_blank">barefootguru@gmail.com</a>> 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 <<a shape="rect" \
href="mailto:00000a500572f1ba-dmarc-request@LISTSERV.UGA.EDU" rel="nofollow" \
target="_blank">00000a500572f1ba-dmarc-request@LISTSERV.UGA.EDU</a>> \
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'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 <<a shape="rect" href="mailto:smwasongwe@gmail.com" rel="nofollow" \
target="_blank">smwasongwe@gmail.com</a>> 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