これはいくつかのポインタ位置を使用してこれを読み取る必要があり、あとでかっこをトリムします。当分の間、私はロジックツリーにいくつかの問題を抱えています。これは、プログラムが異なるレベルに移動し、それに従って入力を適用するよう指示します。スタッガードフリーフォーマットデータの読み込みに問題があります
レベルそれぞれ1- 6位置1、10、19、28、37で開始し、46:
ここでデータファイルのほとんどのサンプルです。 enter link description here ここに私のコードです:
Data peg;
infile Pegasus dlm= ' ';
length Job_Title $23 Employee_Name $20;
input Level & @;
if Level="(Level1)" then
input @10 Job_Title & @34 Employee_Name & @108 Salary dollar8. ;
else if Level="(Level2)" then
input @19 Job_Title & Employee_Name & @108 Salary dollar8. ;
else if Level="(Level3)" then
input @28 Job_Title & Employee_Name & @108 Salary dollar8. ;
else if Level="(Level4)" then
input @37 Job_Title & Employee_Name & @108 Salary dollar8. ;
else if Level="(Level5)" then
input @46 Job_Title & Employee_Name & @108 Salary dollar8. ;
else if Level="(Level6)" then
input @55 Job_Title & Employee_Name & @108 Salary dollar10.;
run;
いくつかのサンプルデータをテキストとして投稿してください。 – user667489
誰も画像に基づいてコードを実行することはできません。私は長い行として各行を読んで、後に解析することをお勧めします。 SCAN()関数が役立ちます。 – Reeza
レベル3はIF/THENであるため動作しません。条件が真であれば、他の条件はテストされません。したがって、2番目の条件が真であれば、if/thenのステップが完了し、3番目のステップには到達しません。 – Reeza