2017-11-25 9 views
-1

私は、SASで単語を異なる列に分割したいExcelファイルがあります。 は、それが同じ列にこのようなファイルでは、私はそれを分割し、引用符を取り除きたい:SASプログラミング、ファイルからの読み取り、別の列への分離

ID;"City";"Year" 
1;"New york";NULL 
2;"stockton";"18" 

これは私が何をしようとしたものです:

data work.project ;      
infile "&path\users.csv" delimiter=';' missover dsd; 
input ID: $30. 
     City: $200. 
     Year: $5. ; 

run; 

proc print data=work.project; 
run; 

私の出力:

OBS ID市年

1 ,,, "ID "" 都市" 「年」
2「1」「ニューヨーク」「NULL」
3 ,,,「2」「ストックトン」「」「18」
4 ,,,「3」「moscow」「」 NULL "

+0

あなたの質問にはExcelが書かれていますが、質問のコードには.csvが含まれています。どちらですか?サンプルコードから得られた出力を表示し、間違った方法を記述してください。コードは私のためにうまくいくようです。 – Quentin

+0

はい、あなたはそれが正しいです.csvファイルです!今私の質問に出力を追加しました。私は引用を取り除きたい...私は例えば$ quote200。を使用しようとしましたが、次に値を失いました – lih

+2

あなたのファイルをもう一度チェックします。または、この質問のサンプルファイルを新しいCSVファイルに貼り付け、この質問からコードを実行します。 SASデータセットに引用符や余分なカンマは付いていません。窓で走る – Quentin

答えて

0

INPUTステートメントのコロンと書式ではなく、INFORMATステートメントを使用します。

data work.project; 
    infile datalines4 delimiter=';' truncover dsd; 
    informat id $30. city $200. year $4.; 
    input ID City Year; 
    datalines4; 
1;"New York";NULL 
2;"Stockton";"18" 
;;;; 
run; 

proc print data=project; 
run; 
+0

SASは文字変数を読み込むためにINFORMATを使用する必要はありません。変数を定義する場合は、LENGTH文を使用します。 – Tom

関連する問題