Skip to content

Instantly share code, notes, and snippets.

@Prunus1350
Last active August 29, 2015 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Prunus1350/fb0593028a957a66f4ed to your computer and use it in GitHub Desktop.
Save Prunus1350/fb0593028a957a66f4ed to your computer and use it in GitHub Desktop.
kaggleの手書き文字データを可視化する
%let home_dir = /folders/myfolders/kaggle/DigitRecognizer/;
* trainingデータ読み込み ;
data train;
infile "&home_dir.train.csv" dsd missover firstobs = 2;
input label pixel0 - pixel783;
run;
proc template;
define statgraph digit;
begingraph;
rangeattrmap name="grange" ;
range 0 - 255 / rangecolormodel=(white black);
endrangeattrmap ;
rangeattrvar attrvar=rangevar var=pixel attrmap="grange";
layout overlay / yaxisopts=(reverse=true);
heatmapparm x = x y = y colorresponse = rangevar;
endlayout;
endgraph;
end;
run;
* 枠用のデータセット ;
data waku;
do y = 1 to 28;
do x = 1 to 28;
output;
end;
end;
run;
%macro draw_digit(n=);
* 指定した行のデータを抽出し、ラベルをマクロ変数に格納 ;
data __m1(drop=label);
set train;
if _n_ eq &n.;
call symputx("label", label);
run;
proc transpose data = __m1 out = __m2(keep=col1 rename=(col1=pixel));
run;
* 枠用のデータセットをマージ ;
data __m3;
merge waku __m2;
run;
* 描画 ;
ods graphics / width = 500 height = 500;
title "Label : &label.";
proc sgrender data = __m3 template = digit;
run;
title;
ods graphics / reset = width reset = height;
%mend draw_digit;
%draw_digit(n=400);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment