私のチームがRで作成したSASコードをテストして、新しいものから新しいものへの見積もりを比較してみましょう。 SASでは、3つのマクロを作成して3つの個別の見積もり(HFS010、HFS011、HFS012)を作成しました。 RにSASマクロを書き込む方法は?
%macro HFS010 (peninc_var, pengn_var, pentax_var, pentype_var, HFS010_x_var);
do i = 1 to dim(pentypex);
if &pentype_var = 1 and &pengn_var = 1 then &HFS010_x_var = &peninc_var;
else if &pentype_var = 1 and &pengn_var = 2 then &HFS010_x_var = &peninc_var + &pentax_var;
end;
%mend HFS010;
は、基本的な考え方は、各マクロは、総年金収入(そう該当する場合は、年金収入値に上の年金から控除税が追加されます)の推定値を生成することです。 pentype = 1(HFS010)、pentype = 2(HFS011)、pentype = 3~7(HFS012)の場合、別途見積もりが必要なため、3つのマクロがあり、調査では、
上記のコードと同等のものをRで作成しようとすると、次のように書いています。
for(i in 1:16) {
pens_data[[paste0("HFS010_",i)]] <- case_when(
pens_data[[paste0("pentype",i)]] == 1 & pens_data[[paste0("pengn",i)]] == 1 ~ pens_data[[paste0("peninc",i)]],
pens_data[[paste0("pentype",i)]] == 1 & pens_data[[paste0("pengn",i)]] == 2 ~ pens_data[[paste0("peninc",i)]] + pens_data[[paste0("pentax",i)]],
TRUE ~ 0)
このコードは、エラーを生成しませんが、推定値を検査すると、空白のままにして見積もりを持っている必要があり、いくつかの例がありました。
誰でもRでマクロを書く方法を知っていますか?私は、HFS010、HFS011、HFS012のそれぞれについて潜在的に関数を書くことを考えましたが、Rには新しく、これについてどうやって行くのか分かりません。 誰かが私のRコードが正しい見積もりを出していない理由や、SASマクロと同等のものをRに書き込む方法について何か提案があれば、それは非常に感謝しています!私はdefmacroを使用しようとしましたが、これをエラーなく動作させることはできませんでした。
ありがとうございます! アシュリー