2016-12-02 1 views
0

[OK]を、私はつらい時、個々のスペースをカウントすることなく、これを行う方法がある。このSASフォーマットのデータライン

data practice; 
input 
Datalines; 
employee_id Name gender years dept  salary Birthday 

     1 Mitchell, Jane A f 6  shoe  22,450 12/30/1960 
     2 Miller, Frances T f 8 appliance  .  11/27/1965 
     3 Evans, Richard A m 9 appliance 42,900 02/15/1973 
     4 Fair, Suzanne K f 3 clothing  29,700 03/09/1958 
     5 Meyers, Thomas D m 5 appliance  33,700 10/22/1961 
     6 Rogers, Steven F m 3 shoe   27,000 09/12/1960 
     7 Anderson, Frank F m 5 clothing  33,000 03/09/1958 
     10 Baxter, David T m 2  shoe   23,900 11/25/1966 
     11 Wood, Brenda L f 3  clothing  33,000 01/14/1962 
     12 Wheeler, Vickie M f 7 appliance  31,500 12/23/1975 
     13 Hancock, Sharon T f 1 clothing  21,000 01/17/1972 
     14 Looney, Roger M m 10 appliance  31,500 06/09/1973 
     15 Fry, Marie E  f 6 clothing  29,700 05/25/1967 
; 
run;quit; 
Proc print data=practice; 
run;quit; 

[OK]を、私の質問をフォーマットを持っています、私の最後の質問?私が数えても、データはまだ私が間違って何を正しく印刷していないのですか?事前にありがとう、これは私の最後の質問である必要があります後で私はこの最終的な準備ができている必要があります。

+0

入力文はデータ線の前にあります。そして、あなたは$で文字を指定する必要があります。 – Reeza

+0

私は学校のプログラムの問題のために、実際にはSAS atmにアクセスできません。とにかく、私の入力は私のデータラインの前にあったが、何らかの理由で$を置いたときだった。私の入力変数のそれぞれの後でも、まだ適切にフォーマットされていません。数えなくても、何を使ってもいいですか? – Thatbadguy

答えて

1

文字長を割り当てないと、最初に見つかった値の長さが使用され、その列のすべての値に割り当てられます。データ行の文の前に文length var $w;を使用して、独自の長さを設定することができます。 dsdオプションを使用すると、SASは変数の区切り文字としてコンマを使用し、引用符で囲まれた文字列を単一の変数として読み込み、変数を保存する前にそれらを取り除くように指示します。デリミタとして空白を使用する場合は、datalineステートメントの下にある各行の前に空白がないことを確認してください。

data practice; 
infiles datalines dsd; 
length Name $50. dept $9.; 
input employee_id Name $ gender $ years dept $  salary $ Birthday MMDDYY10.; 
format Birthday MMDDYY10.; 
Datalines; 
1, "Mitchell, Jane A", f, 6,  shoe,  "22,450", 12/30/1960 
2, "Miller, Frances T", f, 8, appliance,  , 11/27/1965 
; 
run; 
Proc print data=practice; 
run;quit; 
関連する問題