私は非常に大量のデータセットを持っています。&カテゴリ変数&これを連続してそれぞれ&に分ける必要があります。データのSASのデータセットを分割する
例:
AgeBand Name Price
20-30 A 200
30-40 B 300
40-50 C 400
50-60 D 100
私は2つのデータセットを持つようにしたい:ageband &名 2.Price を1.Comrising は、いずれかが助けることができますか?
私は非常に大量のデータセットを持っています。&カテゴリ変数&これを連続してそれぞれ&に分ける必要があります。データのSASのデータセットを分割する
例:
AgeBand Name Price
20-30 A 200
30-40 B 300
40-50 C 400
50-60 D 100
私は2つのデータセットを持つようにしたい:ageband &名 2.Price を1.Comrising は、いずれかが助けることができますか?
proc contents
を使用して、変数の種類を特定します。この方法であなたが望む特定の変数を入力する必要はありません。
proc contents data = sashelp.class noprint out=names(keep=name type); run;
proc sql noprint;
select name
into: cont_vars separated by " "
from names
where type = 1;
select name
into: cat_vars separated by " "
from names
where type = 2;
quit;
%put &cont_vars.;
%put &cat_vars.;
data cont_vars(keep=&cont_vars.) cat_vars(keep=&cat_vars.);
set sashelp.class;
run;
これを管理するための適切な方法は、おそらくExcelのファイル(またはいくつかの他の形式になり、データ・ディクショナリを持つことです、またはネイティブのSAS)を使用して、変数名とそのタイプを格納します。
次に、変数を分割するために、このデータ辞書から変数リストを作成することができます。
そして、あなたはExcelが"c:\mydata\data_dictionary.xlsx"
ファイル持って想像:あなたはもちろんの両方のデータセットに(つまり、何でも)あなたのID変数を保つことを確認する必要があり
proc import file="c:\mydata\data_dictionary.xlsx"
out=datadict dbms=xlsx replace; *or dbms=excel or excelcs depending on your installation and version;
sheet="datadict_sheet";
run;
proc sql;
select colname
into :cat_var_list separated by ' '
from datadict
where coltype = 'Categorical'
;
select colname
into :cont_var_list separated by ' '
from datadict
where coltype = 'Continuous'
;
quit;
data cat_vars(keep=&cat_var_list. idvar) cont_vars(keep=&cont_var_list. idvar);
set yourdata;
run;
。
サンプルデータを追加できますか?変数に関するより多くの情報?つまり、それらはすべて数字であり、カテゴリ変数はすべての文字などです。 –
AgeBand 10-20,20-30,30-40,40-50、支払額-20,30,40,50、タイプA、B、C、 D – user6016731
質問にデータを含めて再現性があることをお勧めします。また、どの変数を分離したいのかはっきりしていません –