내가 데이터를 전치 (날짜) 따라 배열하고 싶은 값 대체 값 격차 예 : SAS는
/*COUNT ID BASED ON bucket and Sold_month*/
PROC SQL;
CREATE TABLE want AS
SELECT bucket, Sold_month,COUNT(ID) as IID from TRANS_2 GROUP by bucket,
Sold_month;
quit;
/*Format date*/
proc datasets ;
modify want;
FORMAT Sold_month YYMMN6.;
quit;
/*TRANSPOSE*/
PROC TRANSPOSE data=want out=wantf (drop=_:) prefix=D_ ;
by bucket;
var IID;
id Sold_month;
format IID best.;
run;
/*Sorting the dates Sold month*/
proc contents data=wantf out=col_names(keep=name) noprint;
run;
proc sort data=col_names out=col_names_sorted;
by name;
run;
proc sql;
create table col_names_sorted_n as
select name from col_names_sorted where name<>'bucket';
run;
data _null_;
set col_names_sorted_n;
by name;
retain sorted_cols;
length sorted_cols $2500.;
if _n_ = 1 then sorted_cols =name ;
else sorted_cols = catx(' ', sorted_cols, name);
call symput('sorted_cols', sorted_cols);
run;
%put &sorted_cols;
/* Final SOLD DATA- */
data output_sorted;
retain bucket &sorted_cols;
set wantf ;
run;
/*ADDING 0 to missing values*/
proc stdize data=output_sorted out=Transaction reponly missing=0;
run;
이 작동하지만 누락을 얻을 해달라고 버킷 (0-max) 및 sold_dt (최소 year-month에서 최대 year-month까지의 모든 year_month)의 최대 및 최소 값을 확인하여 얻으려는 열 이름 및 행 수동으로 모든 열/버킷을 입력하고 싶지는 않지만 최대 값과 최소값을 구합니다. 하지만 버킷은 0에서 최대까지 사용할 수 있습니다.
나는 양동이를 얻을 수 있지만, 최대 (통)에 0을 생성하기 위해 하나의 데이터 단계를 사용하도록 업데이트 여러 년 – viji
노트의 두 번째 부분을 사용하여 모든 누락 된 sold_months을하지 않았고, min (date) - max (date) 더미 데이터 집합. 횡단 연도가 문제가되어서는 안됩니다. 최소 날짜를 1 월로 반올림하려면 intnx()를 'year'간격으로 사용할 수 있습니다. – viji
있다는 것을 코드 – Tom