2016-11-27 3 views
0

私はSAS Baseの初心者です。データベース上のテーブルからデータを抽出する単純なプログラムを作成するのに苦労しています。 PROC MEANSを実行し、データをテーブルに書き戻します。SQLを使用してデータを抽出し、分析してSQLテーブルに書き戻します。

私はPROC SQL(読み込みと更新テーブル)とPROC MEANSの使い方を知っていますが、ステップをどのように組み合わせるか分かりません。

PROC SQL; 
SELECT make,model,type,invoice,horsepower 
FROM 
SASHELP.CARS 
; 
QUIT; 
PROC Means; 
RUN; 

私が達成したいことは、データセットに追加の列を作成することです。馬力の平均..最終的には、計算された列をデータベースのテーブルに書きたいと思います。


編集 私が探していたこれは何です:

PROC SQL; 
create table want as 
select make,model,type,invoice,horsepower 
, mean(horsepower) as mean_horsepower 
from sashelp.cars 
; 
QUIT; 
PROC MEANS DATA=want; 
RUN; 
+0

試した手順を示してください。 PROC MEANSに結果をデータセットに書き込ませる方法を尋ねていますか?もしそうなら、OUTPUTステートメントを見てください。 – Tom

+0

こんにちはTom。私は追加情報で質問を更新しました。 – hgaronfolo

答えて

0

それは自動的に詳細な記録に要約統計を再マージされますので、SASはSQLで行うことは、これは非常に簡単です。

create table want as 
    select make,model,type,invoice,horsepower 
     , mean(horsepower) as mean_horsepower 
    from sashelp.cars 
; 

通常のSASコードを使用します。

proc means data=sashelp.cars nway noprint ; 
    var horsepower ; 
    output out=mean_horsepower mean=mean_horsepower ; 
run; 
data want ; 
    set sashelp.cars ; 
    if _n_=1 then set mean_horsepower (keep=mean_horsepower); 
run; 
+0

ありがとう、トム。したがって、SQLクエリの結果をPROC文に直接渡すことはできません。あるいは、「テーブルAを作成してからデータBを行うデータステップを実行する」必要があります。 Aを設定しますか? – hgaronfolo

+0

テーブルを作成します。スペースを節約する必要がある場合は、ビューを作成し、ビューにアクセスしてください。 – Tom

+0

いいえ、クエリの結果をproc文に渡すことはできません。これを行うには、表を作成し、その表をprocに渡します。これを行うときは、常にPROCステートメントのDATA =部分のテーブルを参照する必要があります。 – Reeza

関連する問題