我正在重寫通常用於R的SAS程序。SAS程序中的許多語句都是用proc sql編寫的,所以爲了便於編程,我將這些語句與sqldf在R.所有的SQL代碼的工作方式相同與sqldf因爲它在SAS,但對於這一說法:PROC SQL和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,它r處理1878行數據集;在sqldf中,有一個1375的數據幀。
proc sql和sqldf之間是否有任何可能導致這種情況的主要區別,或者一般情況下需要考慮?我沒有提供數據,因爲1)數據集很大,2)我更感興趣的是瞭解兩個SQL系統之間的差異。
不確定sqldf,但是對於有意義的結果,你應該在SQL *所有*您的關鍵變量組。 – stevepastelan 2012-08-02 19:19:35
我從來不知道爲什麼我傾向於首先放置「關鍵」變量,並且總計最後。現在我知道... – wildplasser 2012-08-02 19:43:31
拍攝,甚至沒有注意到列表中缺少的關鍵變量。謝謝各位 – user1445246 2012-08-02 19:51:43