1
私はSASを初めて使い、現時点でそれを学んでいます。 私は、infile文にDSDオプションとDLMオプションの両方を使用できることを読んだ。SASでDLMとDSDを同時に使用する
しかし、複数の区切り文字を持つデータで以下を実行するとエラーが発生します。
コード:
data test;
infile cards dlm='@' dsd;
input pid visit $ dose;
cards;
101,vis1"0.05
102,vis2,0.1
エラー:
NOTE: Invalid data for pid in line 254 1-8.
RULE: ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8---
255 102,vis2,10mg
NOTE: Invalid data errors for file CARDS occurred outside the printed range.
NOTE: Increase available buffer lines with the INFILE n= option.
pid=. vist=05mg drug=102,vis2 _ERROR_=1 _N_=1
NOTE: SAS went to a new line when INPUT statement reached past the end of a line.
NOTE: The data set WORK.MH1 has 1 observations and 3 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
256 ;
あなたは私の知識を構築するために、これを理解する上で私を助けていただけますか?
ジョー、私は同じ時間にdlmとdsdを使うことができると読んだので、上記を試しました。私がDSDを使用するのはなぜですか?カンマ区切りは区切られません。 – user2075017
'DSD'はカンマ区切りとは関係ありません。 「DSD」は、SASにいくつかのことをさせる。主なものは、区切り記号ではなく、一致する引用符で囲まれた区切り記号を扱うことである。したがって、102、訪問、看護師の意見は「10mg」では2番目の欄のカンマのために正しく読み込むためにDSDが必要です。しかし 'DSD'はどんな区切り文字でも同様に動作します - ' 102 @ "[email protected]" @ 10mg'は 'dlm = '@' DSD'オプションでうまく動作します。 – Joe