2016-04-22 42 views
1

我想要計算SASdataset中的記錄數。有一個函數可以用簡單的方式創建這個東西?我使用R ed獲取此信息有length()函數。 Morover我需要記錄的數量來計算一些百分比,所以我不需要這個值在表中,但在一個值可以用於其他data step。我該如何解決?如何獲取SAS中數據集的記錄數

在此先感謝

+0

您是否在Google中搜索了「SAS數據集中的記錄數」? – Longfish

+0

如果您使用它來計算百分比,那麼您可能希望在數據集中使用此值。 – superfluous

回答

1

這裏是另一個解決方案,使用SAS字典,

proc sql; 
    select nobs into: num_obs 
    from dictionary.tables 
    where libname = "WORK" and memname = "A" 
    ; 
quit; 

這是很容易通過修改上面的代碼來獲得許多數據集的大小,

proc sql; 
    create table test 
    select memname, nobs 
    from dictionary.tables 
    where libname = "WORK" and memname like "A%" 
    ; 
quit; 
data _null_; 
    set test; 
    call symput(memname, nobs); 
run; 

上面的代碼將會給你在臨時/工作庫中名稱以「a」開頭的所有數據集的大小。

0

假設這是您所創建的,而不是修改或附加到一個基本的SAS表,最好的方法是使用數據集中持有的元數據(嘗試的次數是保存在一個名爲「nobs」的元數據中),而不讀取數據集自身並將其放入宏變量中。您可以通過以下方式做到這一點:

Data _null_; 
i=1; 
If i = 0 then set DATASETTOCOUNT nobs= mycount; 
Call symput('mycount', mycount); 
Run; 

%put &mycount.; 

現在,您將有一個包含在數據集中的行數,你可以使用& mycount的其他數據的步驟調用一個宏變量。