/* look for tables, columns using LABEL */
PROC SQL;
SELECT DISTINCT memname, NAME, LABEL, TYPE, LENGTH
FROM DICTIONARY.COLUMNS
WHERE UPPER(LIBNAME) EQ 'RAW' & UPPER(LABEL) like '%OUTPATIENT%'
; QUIT;
PROC SQL;
SELECT DISTINCT NAME, LABEL, TYPE, LENGTH
FROM DICTIONARY.COLUMNS
WHERE UPPER(LIBNAME) EQ 'SDTM' & UPPER(MEMNAME) EQ 'AE'
; QUIT;
Wednesday, October 9, 2019
Wednesday, December 19, 2018
Clopper-Pearson (Exact) CI
data prop;
input y @@;
datalines;
0 1 0 0 0 0 1 0
;
ods select none;
proc freq data=prop;
tables y / binomial (exact level='1') alpha=0.05;
ods output binomialcls=ci;
run;
ods select all;
proc print data=ci; run;
input y @@;
datalines;
0 1 0 0 0 0 1 0
;
ods select none;
proc freq data=prop;
tables y / binomial (exact level='1') alpha=0.05;
ods output binomialcls=ci;
run;
ods select all;
proc print data=ci; run;
Tuesday, May 15, 2012
Array and Proc Transpose
/* using array instead of proc transpose */
data ex;
array xx[5] x1-x5;
array yy[5] y1-y5;
input id $ x1 x2 x3 x4 x5 y1 y2 y3 y4 y5;
do time=1 to 5;
x=xx[time];
y=yy[time];
output;
end;
keep id time x y ;
datalines;
01 3 2 4 7 4 3 5 2 2 5
02 9 3 7 5 3 2 6 4 3 8
;
Obs id time x y
1 01 1 3 3
2 01 2 2 5
3 01 3 4 2
4 01 4 7 2
5 01 5 4 5
6 02 1 9 2
7 02 2 3 6
8 02 3 7 4
9 02 4 5 3
10 02 5 3 8
Saturday, July 25, 2009
Independent t-test with PROC MIXED
proc ttest data=anorexia (where=(treat in ("Cont","CBT")));
class treat;
var prewt;
run;
/* equal variance */
proc mixed data=anorexia (where=(treat in ("Cont","CBT")));
class treat;
model prewt = treat;
run;
/* unequal variance */
proc mixed data=anorexia (where=(treat in ("Cont","CBT")));
class treat;
model prewt = treat / DDFM=Satterthwaite;
repeated / group=treat;
run;
Friday, July 24, 2009
Paired t-test with PROC MIXED
proc import datafile="C:\projects\Endocrine\CGMS\data\ex\anorexia.csv" out=anorexia
dbms=csv replace; getnames=yes;
run;
proc sql;
create table cbt_long as
select var1 as patient, 0 as time, prewt as y
from anorexia (where=(treat="CBT"))
union
select var1 as patient, 1 as time, postwt as y
from anorexia (where=(treat="CBT"))
;quit;
proc mixed data= cbt_long;
class patient;
model y = time / s;
random patient;
* repeated / subject=patient type=cs rcorr;
run;
/* Paired t-test with SQL */
proc sql;
select t(postwt-prewt) as t, prt(postwt-prewt) as p_value
from anorexia (where=(treat="CBT"))
;quit;
PROC SQL: functions
COUNT, FREQ, N: number of nonmissing values
NMISS: number of missing values
MIN: smallest value
MAX: largest value
RANGE: range of values
SUM: sum of values
SUMWGT: sum of the WEIGHT variable values(footnote 1)
AVG, MEAN: means or average of values
T: Student's t value for testing the hypothesis that the population mean is zero
PRT: probability of a greater absolute value of Student's t
USS: uncorrected sum of squares
CSS: corrected sum of squares
VAR: variance
STD: standard deviation
STDERR: standard error of the mean
CV: coefficient of variation (percent)
NMISS: number of missing values
MIN: smallest value
MAX: largest value
RANGE: range of values
SUM: sum of values
SUMWGT: sum of the WEIGHT variable values(footnote 1)
AVG, MEAN: means or average of values
T: Student's t value for testing the hypothesis that the population mean is zero
PRT: probability of a greater absolute value of Student's t
USS: uncorrected sum of squares
CSS: corrected sum of squares
VAR: variance
STD: standard deviation
STDERR: standard error of the mean
CV: coefficient of variation (percent)
Thursday, July 16, 2009
array & output
%let ntime=288;
data series (drop=j);
array c(30) ;
array s(30);
do time=1 to &ntime;
do j=1 to 30;
c[j]=cos(2*3.141593*j* time/&ntime); s[j]=sin(2*3.141593*j* time/&ntime);
end;
output;
end;
run;
Subscribe to:
Posts (Atom)
