2016-06-01 22 views
0

1)sourceh.group2には、データセットを4つのグループに分けるTypeという変数があります。私はこれらのグループのそれぞれの観測数を別々に数える必要があります。それを行うためにプログラムを更新するにはどうすればよいですか? 2)私は観測数を持つ新しいデータセットを作成したいと思います。以下のプログラムは私にログページの番号を与えますが、代わりに新しいデータセットを作成したいと思います。どのようにプログラムすることができますか?proc sql?hを使用してSASデータセットで観測値を数える方法

proc sql以外の方法でも非常に便利な方法があれば、それは大きなデータセットです。

ありがとうございました!あなたの最初の質問については

proc sql noprint; 
    select count(*) into :nobs 
    from sourceh.group2; 
quit; 
%put Obs in data set: &nobs; 

答えて

2

、あなただけの種類によってタイプ、そのタイプと観測値の数、およびグループを持つテーブルを作成する必要があります。 (あなたが唯一の観測の合計数をしたいので)あなたの2番目の質問について、あなたは同じことを行うが、グループなし:

proc sql; 
    create table count_by_type as select 
     type, cap, count(*) as count 
     from sourceh.group2 
     group by type, cap; 
quit; 

proc sql; 
    create table count_all as select 
     count(*) as count 
     from sourceh.group2; 
quit; 
+0

ありがとうございました!あなたの最初の提案はうまくいった、それは私が必要だったものです。実際には、型に加えて、cap(データセットを3つに分割する)という別の変数があります。私はタイプとキャップ、すなわち3つのキャップ* 4タイプ= 12のグループによる観察を数えたいと思う。最初のコードを更新するにはどうすればよいですか?再度、感謝します。 –

+0

私の編集はこれに対処すると思います。 – superfluous

1

あなたはPROC SUMMARYを使用する場合があります。一回の実行で、TYPE、CAP、またはその両方でカウントを得ることができます。

proc summary data=have ; 
    class type cap ; 
    output out=counts ; 
run; 

変数_TYPE_は、どのクラス変数がテーブルに貢献したかを教えてくれます。 2つのクラス変数を使用すると、_TYPE_という4つの値があります。 00は全体のカウントを持ち、1はCAPのレベル別カウントを持ち、2( '10'b)はTYPEのレベルごとのカウントを持ち、3(' 11'b)はTYPEとCAPのレベル別の値を持ちます。

関連する問題