Ref



trt : R, T

foldserseq = 1, 2, 3, 4...

instantname = A C B D..




column trt folserseq instantname  ;


foldserseq 순서대로


define trt /group  ;

define folserseq / group  order = internal noprint ;

define instantname /group "Visit" ;


Instantname 순서대로


define trt /group  ;

define folserseq / group  noprint ;

define instantname /group "Visit" ;



'통계 clinical trial > SAS' 카테고리의 다른 글

proc GLM for BE  (0) 2018.11.08
ODS 특수기능  (0) 2018.11.07
proc report에 format 처러하기 및 통계처리  (0) 2018.11.04
Proc Transpose  (0) 2018.11.04
엑셀 파일 만들기 (ODS EXCEL)  (0) 2018.11.02
블로그 이미지

고향이안드로메다

,

참조1

참조2  Format Challenges with PROC REPORT


define distance /analysis format=comma12. "(feet)";  


proc format ;

 value $aaa

   a  ="A"

   b ="B"

   c ="C"  를 참조할 때 format = $aaa.   (점을 꼭 찍어야함)


value bbb



columns (TRT   folderseq1  InstanceName1 &analyte=a1  &analyte=a2 &analyte=a3 &analyte=a4 &analyte=a5 &analyte=a6) ('Change from baseline' change pct_chg);


define trt /group format = $trtf. "TRT"; 

 define folderseq1 /group order = internal  noprint ;

define InstanceName1  /group  center  "Visit and Time";



define a1/analysis n format=5.0 center "N" ;  

define a2/analysis mean format=5.2 center  "Mean";  

define a3/analysis std format=5.2 center  "SD";  

define a4/analysis min format=5.2 center  "Min";  

define a5/analysis median format=5.2 center  "Median";

define a6/analysis max format=5.2 center  "Max";

define change/analysis mean format=5.2 center  "Mean change";

define pct_chg/analysis mean format=5.2 center  "Mean change(%)";

'통계 clinical trial > SAS' 카테고리의 다른 글

ODS 특수기능  (0) 2018.11.07
proc report output 출력 순서..  (0) 2018.11.06
Proc Transpose  (0) 2018.11.04
엑셀 파일 만들기 (ODS EXCEL)  (0) 2018.11.02
SAS에서 excel 파일 불러오기 (PROC IMPORT)  (0) 2018.11.02
블로그 이미지

고향이안드로메다

,

참조 homepage:

 

proc sort data = xxx ; by group ; run ;

Proc transpose data = xxx out = yyy ;

by group ;   *** y축 나열 **** ;

var code ;

run ;




블로그 이미지

고향이안드로메다

,
ods excel file="c:\projects\output\example.xlsx" 
 /* will apply an appearance style */
 style=pearl
 options(
                        /* for multiple procs/sheet */
  sheet_interval="none" 
                     /* name the sheet tab */
  sheet_name="CARS summary"
 );
 
/* add some formatted text */
ods escapechar='~';
ods text="~S={font_size=14pt font_weight=bold}~Cars Summary and Histogram";
 
/* tabular output */
proc means data=sashelp.cars;
var msrp invoice;
run;
 
/* and a graph */
ods graphics / height=400 width=800 noborder;
proc sgplot data=sashelp.cars;
histogram msrp;
run;
 
ods excel close;


'통계 clinical trial > SAS' 카테고리의 다른 글

proc report에 format 처러하기 및 통계처리  (0) 2018.11.04
Proc Transpose  (0) 2018.11.04
SAS에서 excel 파일 불러오기 (PROC IMPORT)  (0) 2018.11.02
P-value 집어넣기  (0) 2018.11.01
반올림 버림  (0) 2018.11.01
블로그 이미지

고향이안드로메다

,

1) proc import


PROC IMPORT OUT=raw.data1           DATAFILE="C:\Users\UOS\Desktop\excel\101_DT_1K52B01_20140707170219_2.xlsx"
            DBMS=  XLSX   REPLACE;
            SHEET="sheet1";

           range="Sheet1$E7:K17" ;


statements for importing from delimited files

DATAROW=n;         *** 어느 열부터 읽기시작 ********
DELIMITER=char | 'nn'x;
GETNAMES=YES | NO; ** variable name 유무 default는 yes
GUESSINGROWS=n | MAX;


*변수명 바꾸기*/
%macro varname_change(data);
data &data;
 set &data;

 rename VAR1 = rigion
   VAR2 = industry
   VAR3 = biz
   VAR4 = num_biz
   VAR5 = num_emp;

 label VAR1 = '행정구역별'
   VAR2 = '산업별'
   VAR3 = '사업체구분별'
   VAR4 = '사업체수'
   VAR5 = '종사자수';
run;
%mend;

%varname_change(raw.data1);
%varname_change(raw.data2);
%varname_change(raw.data3);
%varname_change(raw.data4);
%varname_change(raw.data5);

 

/*필요없는 변수 제거*/
%macro var_drop(data);
data &data;
 set &data;
 drop biz;
run;
%mend;
%var_drop(raw.data1);
%var_drop(raw.data2);
%var_drop(raw.data3);
%var_drop(raw.data4);
%var_drop(raw.data5);

 

Available Statements for Importing and Exporting Excel Files Using DBMS=XLS and DBMS=XLSX     

DBMS= Identifier

Option

Valid Value

Default Value

PROC

PROC

    

IMPORT

EXPORT

XLS

ENDCOL

Last column for data

Last column that contains data

Yes

No

 

ENDNAMEROW

Last row for variable names

Same as NAMEROW

Yes

No

 

ENDROW

Last row for data

Last row that contains data

Yes

No

 

GETNAMES

Yes | No

Yes

Yes

No

 

NAMEROW

First row for variable names

First row that contains variable names

Yes

No

 

NEWFILE

Yes | No

No

No

Yes

 

PUTNAMES

Yes | No

Yes

No

Yes

 

RANGE

name | sheet$ul:lr

First row

Yes

No

 

SHEET

Sheet name

First sheet

Yes

Yes

 

STARTCOL

First column for data

Last column that contains data

Yes

No

 

STARTROW

First row for data

First row that contains data

Yes

No

XLSX

GETNAMES

Yes | No

Yes

Yes

No

 

RANGE

name | sheet$ul:lr

First row

Yes

No

 

SHEET

Sheet name

First sheet

Yes

Yes

2) SAS LIBNAME Statement for EXCEL and ACCESS Engine 

     (sas 9.4부터 가능)

 LIBNAME <libref> engine-name <'physical-path and filename.ext'> 

<SAS/ACCESS engine-connection-options> 
<SAS/ACCESS LIBNAME-options>;


/* because Excel field names often have spaces */
options validvarname=any;
 
libname xl XLSX '/folders/myfolders/sas_tech_talks_15.xlsx';
 
/* discover member (DATA) names */
proc datasets lib=xl; quit;
 
libname xl CLEAR;


만약 excel에서 특정data sheet (sheet1)를 불러오고자 할떄는

data xxx ; set xl.sheet1 ;

run ;


'통계 clinical trial > SAS' 카테고리의 다른 글

Proc Transpose  (0) 2018.11.04
엑셀 파일 만들기 (ODS EXCEL)  (0) 2018.11.02
P-value 집어넣기  (0) 2018.11.01
반올림 버림  (0) 2018.11.01
datetime 변수에서 날짜와 시간을 분리  (0) 2018.11.01
블로그 이미지

고향이안드로메다

,

p_vlaue를 소수점 맞추어넣거나, 만약 <0.001일때 그대로 표시하려면..


format =pvalue6.4



proc report

data = gg6

nowindows

spacing = 1

headline

headskip

split = "|"

style(report) = {just=c outputwidth=9 in font_face='맑은 고딕' vjust=middle}

style(header) = {font_face='맑은 고딕' vjust=middle }

style(column) = {font_face='맑은 고딕' vjust=middle}

style(summary)= {font_face='맑은 고딕' vjust=middle}

style         = {frame=hsides rules=rows};

columns  no_  _label_   TRT,( meansd  CV_ ) probf      ;

define no_ /  group noprint ;

define _label_ /  group  order=data   width = 8 "Parameter" ;

define TRT /across  center width = 8 "Treatment" ;

define meansd / display center  width = 8 " "  ;

define CV_ / display center f=4.1  width = 8 "CV (%) "  ;

define probf /   center  format =pvalue6.4  width = 4  "P-value ";

 

compute after ;

line left @2 "P-value is calculated using paired t-test." ;

line lfeft @2 "Values are presented as mean±SD, except T^{sub max,ss} which is presented as median (minimum, maximum)" ;

endcomp;


 run;


블로그 이미지

고향이안드로메다

,

X= ROUND(12.65);

---> X=13이 된다. 즉, 반올림.

 

X= ROUND(12.65, .1);

---> X=12.7이 된다. 즉, 소수점 첫째자리까지 반올림.

 X= ROUND(12.6526, .001);

---> X=12.653이 된다. 즉, 소수점 세째자리까지 반올림.


X= INT(4.32);

---> X=4가 된다. 즉, 버림.



블로그 이미지

고향이안드로메다

,
data result; 
    actual_dt = "23MAY16:07:21:00"dt; 
    visit_date = datepart(actual_dt); 
    visit_time = timepart(actual_dt); 

    format visit_date ddmmyy10. visit_time time8.; ***numeric format *** ;
run; 

문자형태로 바꿀려면..  vstm =  put(timepart(VSDTC1),time8.) ;


숫자(날짜) 와 숫자(시간)합치기(concatenating two separate fields (date and time) into one datetime )

                       : newdtm=dhms(date, 0,0,time);

문자를 숫자시간으로 

   

data ae2 ;    set ae1 ;

 **start date ** ;

 AESTDTC_RAW1 = input(AESTDTC_RAW, yymmdd10.) ;

 format AESTDTC_RAW1 date10. ;

 AESTTM1 = input(AESTTM,  time8.) ;

sttm = dhms(AESTDTC_RAW1, 0,0, AESTTM1) ;


** End date ** ;

AEENDTC_RAW1 = input(AEENDTC_RAW, yymmdd10.) ;

 format AEENDTC_RAW1 date10. ;

 AEENTM1 = input(AEENTM,  time8.) ;

edtm = dhms(AEENDTC_RAW1, 0,0, AEENTM1) ;


duration = (edtm - sttm)/24/60/2.5 ; /* */

RUN;


ata want; 
  attrib newdate format=datetime25.;
  date="01jan2016"d;
  time=input("9:10:07",time8.);
  newdate=input(catx("T",put(date,date9.),put(time,time8.)),datetime.);
  if datepart(newdate)=date then chk1=1;
  if timepart(newdate)=time then chk2=1;
run;
AS StatementResults
 
----+----1----+
put day mmddyy2.;
10
put day mmddyy3.; 
 10
put day mmddyy4.; 
1025
put day mmddyy5.;
10/25
put day mmddyy6.; 
102505
put day mmddyy7.;
 102505
put day mmddyy8.; 
10/25/05
put day mmddyy10.; 
10/25/2005



참고



/*

data ae4 ;

set ae3  ;

duration = put(duration, 7.1);

date_start = datepart(AESTDAT) ;

format date_start date9.; 

informat date_start date9.; 


rand_code = input(substr(rand_id,2,3),10.) ;

period_a1s = input('07APR2018',date9.) ; ****1기 2기 시작 및 종료 날짜 ***;

period_a1e =  input('20APR2018',date9.) ;

period_a2s = input('21APR2018',date9.) ;

period_a2e =  input('01MAY2018',date9.) ;

period_b1s = input('14APR2018',date9.) ;

period_b1e =  input('27APR2018',date9.) ;

period_b2s = input('28APR2018',date9.) ;

period_b2e =  input('09MAY2018',date9.) ;


if ((rand_code <27) and ((period_a1s=<date_start) and (period_a1e=>date_start))) then do ; period = 1; end ;

if ((rand_code <27) and ((period_a2s=<date_start) and (period_a2e=>date_start))) then do ; period = 2; end ;

if ((rand_code >26) and ((period_b1s=<date_start) and (period_b1e=>date_start))) then do ; period = 1; end ;

if ((rand_code >26) and ((period_b2s=<date_start) and (period_b2e=>date_start))) then do ; period = 2; end ;


if ((seq = 1) and (period = 1)) then do ; trt = "R" ; end ;

if ((seq = 1) and (period = 2)) then do ; trt = "T" ;end ;

if ((seq = 2) and (period = 1)) then do ; trt = "T" ; end ;

if ((seq = 2) and (period = 2)) then do ; trt = "R" ;end ;

run;

 */

'통계 clinical trial > SAS' 카테고리의 다른 글

엑셀 파일 만들기 (ODS EXCEL)  (0) 2018.11.02
SAS에서 excel 파일 불러오기 (PROC IMPORT)  (0) 2018.11.02
P-value 집어넣기  (0) 2018.11.01
반올림 버림  (0) 2018.11.01
숫자->문자, 문자->숫자  (0) 2018.11.01
블로그 이미지

고향이안드로메다

,