2016-08-16 4 views
0

durrel_cyc = 1の単一の条件でsasデータセットの単純なサブセットを作成します。これにより、376の観測セットが作成されます。しかし、私がvdurrel_cycの頻度を実行すると、536(重み付けされていない)の観測値があり、値1は選択されているはずです。予想される頻度と一致しないサブセットのSASサイズ

明らかに非論理的であり、私はこれまでに一度も出会ったことがない - そして私はしばらくSASを使ってきました。

私は本当に何をすべきか分かりません。それは私を夢中にしています。これを引き起こす可能性のあるコマンドはありますか?

私は次のことを試してみました:

data a b ; 
set look ; 
if durrel_cyc = 1 then output a ; else output b ; 
run ; 

enter image description here

proc freq data=b ; 
tables durrel_cyc/missing ; 
run ; 

enter image description here

なぜデータセットBの1の値がまだありますか?

+0

これは動作しない方法はありません。このデータステップとproc freqの間にステップがないことは確かですか?データサンプルを提供できますか? – fl0r3k

答えて

4

あなたはdurrel_cycがどのように作成されたかについては言及していませんので、数値表現エラーの犠牲者である可能性があります(これについてインターネット上に多数の記事があります)。

if round(durrel_cyc) = 1 then output a ; else output b ;を入力して問題が解決するかどうか確認してください。

durrel_cycにカスタムフォーマットが関連付けられていないことを確認してください(proc freqはフォーマットされた値を表示するので、1と異なる番号を表示するカスタムフォーマットがある場合はproc freqが表示されます)これは1)

+0

良い点!私はこれを忘れてしまった。ありがとうKeith。 – fl0r3k

+0

Round()はトリックを行い、数値表現エラーを読み込み、durrel_cycはエラーが発生した他のさまざまな変数の合計です。整数を集計するだけでは、このようなエラーが発生することに私には驚きました。 – user2568648

+0

整数を加算することでこの問題は発生しないため、他の変数の1つがいくつかの非整数から派生していると思われます – Longfish

関連する問題