私は、通常使用する SAS プログラムを R に書き直している最中です。SAS プログラムの多くのステートメントは proc sql で記述されているため、プログラミングを容易にするために、R で sqldf を使用してこれらのステートメントを複製しています。すべての SQL コード次のステートメントを除いて、SAS と同じように sqldf で機能します。
SAS:
proc sql;
create table merged32 as
select max(ctf) as ctf,
max(ctms) as ctms,
max(site_name) as site_name,
provider_id, npi,
first_name, middle_name, last_name, specialty,
address_1, city, state, site_ct, zip, site_key
from merged2
group by 9,10,11,12,14,15;
quit;
run;
sqldf:
sqldf("select max(ctf) as ctf,
max(ctms) as ctms,
max(site_name) as site_name,
provider_id, npi,
first_name, middle_name, last_name, specialty,
address_1, city, state, site_ct, zip, site_key
from merged2
group by 9,10,11,12,14,15")
SAS では、1878 行のデータセットを返します。sqldf では、1375 のデータフレーム。
これを引き起こしている可能性がある、または一般的に考慮する必要があるproc sqlとsqldfの間に大きな違いはありますか? 1) データセットが膨大であり、2) 2 つの SQL システムの違いを知りたいという理由から、データを提供しませんでした。