2017-09-28 12 views
1

これは非常に基本的な質問ですが、ヘルプドキュメントで見つけたコードを実行しようとすると、コードが失敗してしまいます。修正されたデータセットを永久保存する

これまでは、セッションが終了するたびに、私が理解している.WORKディレクトリから分析プロジェクトを実行していました。データの整理と準備をしており、分析を開始する前に毎回行う必要はありません。

私はこれを読んで理解します:https://support.sas.com/documentation/cdl/en/basess/58133/HTML/default/viewer.htm#a001310720.htm私は清掃されたデータセットを非一時ディレクトリに出力する必要があります。

手順私は、これまで撮影してきた: 1)私はSAS 3)クリーンデータセットを保存するための私のコードで「私のフォルダ」の下に持っているフォルダに保存された「プロジェクト」 2)と呼ばれる新しいライブラリを作成しました以下のように「プロジェクト」のライブラリにある:

PROC SORT DATA=FAA_ALL NODUPKEY; 
BY GROUND_SPEED; 
DATA PROJECT.FAA_ALL; 
RUN; 

その後、私は新しいプログラムでこのコードを実行します。

PROC PRINT DATA=PROJECT.FAA_ALL; 
RUN; 

それはそこには観測がされず、データセットは、本質的に空であることを述べています。

どこが間違っているのか教えていただけますか?

答えて

4

あなたの問題はPROC SORT

PROC SORT DATA=FAA_ALL NODUPKEY; 
BY GROUND_SPEED; 
DATA PROJECT.FAA_ALL; 
RUN; 

DATA PROJECT.FAA_ALLが空白のデータセットを作成するデータのステップを開始されたことを

PROC SORT DATA=FAA_ALL OUT= PROJECT.FAA_ALL NODUPKEY; 
BY GROUND_SPEED; 
RUN; 

であるべきです。

+0

ありがとうございます。これはうまくいった。だから私はSASのウェブサイトから間違ったヘルプ記事を読んでいたのですか? "外"の議論は言及しなかった。 – William

+1

私はあなたが正しい軌道に乗っていたと思います。これはあなたのコードの構文バグです。 – DomPazz

+0

ありがとう!私は訂正を感謝します! – William

2

何か言及する価値がある:あなたのデータステップは、あなたが設定されたステートメントを持っていなかったので期待したことをしなかった。あなたのコードでは、と同等であった:。

PROC SORT DATA=WORK.FAA_ALL NODUPKEY; 
BY GROUND_SPEED; 
RUN; 

DATA PROJECT.FAA_ALL; 
SET _NULL_; 
RUN; 

PROJECT.FAA_ALL何が読み込まれなかったために空である

SORT手順は、暗黙のうちにその場データセットをソートします。

PROC SORT DATA=WORK.FAA_ALL NODUPKEY; 
BY GROUND_SPEED; 
RUN; 

DATA PROJECT.FAA_ALL; 
SET WORK.FAA_ALL; 
RUN; 

しかし、これはまだ2つのステップをとり、I/O余分なディスクが必要です:あなたは、SASは、データのステップへsetステートメントを追加することにより、ソートされたデータを移動する可能性があります。 SAS手順(DomPazzの回答のように)でoutオプションを使用すると、データを移動するだけのデータステップを使用するよりも、ほとんど常に高速で効率的です。

関連する問題