<?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: Calculate Means Based on the Number of subject  at each Visit Easy way in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Calculate-Means-Based-on-the-Number-of-subject-at-each-Visit/m-p/889985#M351642</link>
    <description>&lt;P&gt;It worked. Thanks.&lt;/P&gt;</description>
    <pubDate>Fri, 18 Aug 2023 20:21:46 GMT</pubDate>
    <dc:creator>SASuserlot</dc:creator>
    <dc:date>2023-08-18T20:21:46Z</dc:date>
    <item>
      <title>Calculate Means Based on the Number of subject  at each Visit Easy way</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculate-Means-Based-on-the-Number-of-subject-at-each-Visit/m-p/889129#M351265</link>
      <description>&lt;P&gt;&amp;nbsp;How can I Precisely ask the question? This may be a little elaborate.&amp;nbsp; Thank you for reading and for your patience.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am creating a table for tests for N(Counts), Means, and SD&amp;nbsp; of change (CHG) at each visit. Additionally, we make the same stats for 'Base" at the 'Baseline' visit. This is simple so far for me by using the 'Proc Means.'&amp;nbsp; However, I need to create an additional "Baseline" stats Row&amp;nbsp; ( indicated in&amp;nbsp; "Orange cells" Ex: "&lt;FONT color="#FF6600"&gt;Baseline (v1)&lt;/FONT&gt;) by checking how many subjects there were at that visit and calculating the Baseline Stats for that subjects only.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;In the figure: I manually presented the&amp;nbsp; Baseline&amp;nbsp;stats for blood and urine tests before the visit1 because I knew there were 4' subjects at both visits. But How can I achieve&amp;nbsp;it programmatically? If you see visit 2, there are 3 subjects. So I expect the Baseline stats of those three subjects for the Baseline Visit.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;&lt;EM&gt;How I want to display&lt;/EM&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SASuserlot_0-1691978225988.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/86708iA99F948A648BD480/image-size/medium?v=v2&amp;amp;px=400" role="button" title="SASuserlot_0-1691978225988.png" alt="SASuserlot_0-1691978225988.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Note: the example is given to match the best of my requirement. There is flexibility in terms of terminology and how we display&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
	input sid visit$ test$  val base chg;
	datalines;
101 Baseline blood 20 20 .
101 Baseline urine 10 10 .
102 Baseline blood 25 25 .
102 Baseline urine 10 10 .
103 Baseline blood 20 20 .
103 Baseline urine 20 20 .
104 Baseline blood 30 30 .
104 Baseline urine 10 10 .
101 Visit1   blood 10 20 -10
101 Visit1   urine 20 10 10
102 Visit1   blood 10 25 -15
102 Visit1   urine 25 10 15
103 Visit1   blood 25 20 5
103 Visit1   urine 30 20 10
104 Visit1   blood 10 20 -10
104 Visit1   urine 30 30 0
101 Visit2   blood 40 20 20
101 Visit2   urine 50 10 40
102 Visit2   blood 60 25 35
102 Visit2   urine 70 10 60
103 Visit2   blood 60 20 40
103 Visit2   urine 70 20 50

;
Run;

Proc means data= have nway missing noprint;
class test visit ;
var base;
where visit = "Baseline";
output out= all_base (drop= _:) n=n mean=mean std=sd ;
run;

Proc means data= have nway missing noprint;
class test visit ;
var base;
where visit ^= "Baseline";
output out= byvisit (drop= _:) n=n mean=mean std=sd ;
run;


data all;
set all_base byvisit;
run;

ods listing;
proc print;
run;
ods listing close;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Thank you for your inputs.&lt;/P&gt;</description>
      <pubDate>Mon, 14 Aug 2023 01:58:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculate-Means-Based-on-the-Number-of-subject-at-each-Visit/m-p/889129#M351265</guid>
      <dc:creator>SASuserlot</dc:creator>
      <dc:date>2023-08-14T01:58:30Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate Means Based on the Number of subject  at each Visit Easy way</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculate-Means-Based-on-the-Number-of-subject-at-each-Visit/m-p/889130#M351266</link>
      <description>&lt;P&gt;Since you ask to compute "Baseline (Vn)" who has corresponding subjects to the specific visit, I think you have to intro conditional computation. Here is an easy way:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=have out=sorted;
  by test sid visit;
run;

proc transpose data=sorted out=trans;
  by test sid;
  var base;
  id visit;
run;

data trans_new;
  set trans;
  if visit1^=. then baseline_v1=baseline;
  if visit2^=. then baseline_v2=baseline;
run;

ods select summary;
ods output summary=summary;
proc means data=trans_new n mean std stackods;
  class test;
  var baseline baseline_v1 visit1 baseline_v2 visit2;
run;
ods output close;
ods select all;

data want;
  set summary(where=(Variable='Baseline')) summary(where=(Variable^='Baseline'));
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;If there are very much "visit",&amp;nbsp; try a do loop based on array.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 14 Aug 2023 03:08:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculate-Means-Based-on-the-Number-of-subject-at-each-Visit/m-p/889130#M351266</guid>
      <dc:creator>whymath</dc:creator>
      <dc:date>2023-08-14T03:08:11Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate Means Based on the Number of subject  at each Visit Easy way</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculate-Means-Based-on-the-Number-of-subject-at-each-Visit/m-p/889985#M351642</link>
      <description>&lt;P&gt;It worked. Thanks.&lt;/P&gt;</description>
      <pubDate>Fri, 18 Aug 2023 20:21:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculate-Means-Based-on-the-Number-of-subject-at-each-Visit/m-p/889985#M351642</guid>
      <dc:creator>SASuserlot</dc:creator>
      <dc:date>2023-08-18T20:21:46Z</dc:date>
    </item>
  </channel>
</rss>

