米国での状態変化に関するデータがあります。今、状態修正効果を制御するために多くのダミーを作成したいと考えています。スタータでは簡単な作業ですが、手作業ですべてのダミーを作成しなければならないようですが、修正効果を伴うロジット回帰はかなり遅くなります。あまりにも多くのchar変数をダミーとして作成する必要があるので、sasでchar変数(数値ではなく、私が適用するいくつかのメソッドを知っている)からダミーを作成するより効率的な方法があるのだろうかと思います。 乾杯、 EvaSASでカテゴリ変数を使用してダミーをより効率的に作成
0
A
答えて
0
proc logistic
はclass
をサポートしています。変数をclass
ステートメントに置き、必要なパラメーター化のタイプを指定することもできます。最も一般的な方法は、参照コーディングです。
proc logistic data=sashelp.heart;
class sex bp_status/param=ref;
model status = sex ageAtStart height weight bp_status;
run;
すべてのprocsのは、あなたがあなたのダミー変数を作成するproc glmmod
または他の方法の様々なを使用することができ、それらの例には、class
文をサポートするわけではありません。
http://blogs.sas.com/content/iml/2016/02/22/create-dummy-variables-in-sas.html
+0
小さな修正:REFは引用符なしで使用する必要があります – vasja
0
あなたは絶対に手動でこのようなマクロを使用することができますダミー変数を作成する必要がある場合。変数ごとに呼び出す必要があります。
%macro create_dummy(dataset=, var=);
%* Save Distinct Values and Dummy Variable Names;
proc sql noprint;
select distinct
&var,
tranwrd(tranwrd(trim(&var), " ", "_"), ".", "")
into
:value1-,
:name1-
from
&dataset
;
select
count(distinct(&var))
into
:total
from
&dataset
;
quit;
%* Create Dummy Variables;
data &dataset;
set &dataset;
%do i=1 %to &total;
if &var = "&&value&i" then &&name&i = 1; else &&name&i = 0;
%end;
run;
%mend create_dummy;
マクロを1回だけ呼び出す場合は、マクロにループを追加できます。上部にdoループを追加してください:
%macro create_dummy(dataset=, var=);
%do l %to %sysfunc(countw(&var));
%let var1 = %scan(&var, &l);
%* Save Distinct Values and Dummy Variable Names;
proc sql noprint;
select distinct
&var1,
tranwrd(tranwrd(trim(&var1), " ", "_"), ".", "")
into
:value1-,
:name1-
from
&dataset
;
select
count(distinct(&var1))
into
:total
from
&dataset
;
quit;
%* Create Dummy Variables;
data &dataset;
set &dataset;
%do i=1 %to &total;
if &var1 = "&&value&i" then &&name&i = 1; else &&name&i = 0;
%end;
run;
%end;
%mend create_dummy;
関連する問題
- 1. sasを使用して効率的に変数名を変更する方法
- 2. 効率的なダミー変数の縮退
- 3. 効率的な方法でPythonのダミー変数を作成する
- 4. データセットsas内のカテゴリ変数のダミー変数を作成するためのマクロの作成
- 5. SASを効率的に使用してコードを保存DRY
- 6. R:リストのカテゴリ変数*に基づいてダミー変数を作成する*
- 7. (SAS) - ``切替え ''のためのダミー変数を作成する
- 8. ダミーforms.Formなしでフィールドレスフォームを作成するより効率的な方法は何ですか?
- 9. モデルでより効率的なコードを作成するには?
- 10. SASを使用して複数の操作を効率的に実行する方法
- 11. SASマクロ変数を使用してPROCで変数名を作成するSQL
- 12. 静的変数を効率的に使用する方法は?
- 13. 動的変数のためにPythonでリストを効率的に作成
- 14. data.tableファイルでより効率的なループを作成
- 15. ダミー変数をRで作成する
- 16. MySQLとサブクエリをより効率的に作成する
- 17. 次のVBAコードをより効率的に作成する
- 18. ユニコードエスケープコードをより効率的に作成する
- 19. SAS:ベンチマーク期間のダミーを作成する(イベントの周り)
- 20. ActiveRecordを使用して効率的にレポートを生成する
- 21. BlockUIとjQueryを使用して効率的にダイアログを作成する
- 22. sklearnを使用して週のダミー変数を作成するDictVectorizer
- 23. SASコード効率
- 24. より効率的なモンテカルロシミュレーションを作成する
- 25. Javascript/Jqueryを使用した効率的なタブ切り替えの作成
- 26. ロングフォームを効率的に作成する
- 27. ダミー変数を作成するループ
- 28. 配列とforeachループを使って入力変数をより効率的に操作する
- 29. pythonでnetworkxを使用して効率的にすべてのパスを生成
- 30. findViewByIdをより効率的に使用する
どのPROCを使用していますか? CLASSステートメントを使用しましたか? – Tom