2017-08-11 12 views
0

私は数値からcharに変換したいテーブルを持っています。インフォーメイションのinfileはテーブル全体ではなく選択されたカラムを取るだけです

これは私のコードです:

data want; 
infile 'file location.csv' truncover dlm = ',' firstobs = 2 dsd; 
informat col $5. col; 
input col; 
Run; 

はしかし、これは私だけの単一の列(変更された列COL)を与えます。それはテーブルの残りの部分を出力しません。私は他の列でインフォーメット+入力を試みましたが、空白のセルに数字をランダムに入力します。

1つの列だけを増やしてテーブル全体を取得する方法はありますか?データステップを使用してファイルを読み込むこと

+1

Huh? INPUTステートメントでは、1つの列しか読み込みません。あなたがそれを言わなければ、SASは他の列を読むことをどのように知っていますか? CSVファイルの2〜3つのレコードの例を投稿してください。 – Tom

答えて

0

、自分ですべてを記述する必要があり、実際に

data want; 
    infile 'file location.csv' truncover dlm = ',' firstobs = 2 dsd; 
    informat col1 col2 col3 col4 $5.; 
    input col1 $ col2 $ col3 $ col4 $; /* not sure if you need the dollars here */ 
Run; 

あなたはproc importであなたのために生成されたその種類のコードを持つことができます。

proc import datafile='file location.csv' 
    out=want dbms=csv replace; 
    getnames=no; 
run; 

しかし、 、これはフォーマットをほとんど制御しません。

また、エンタープライズガイドで作業している場合は、アプリケーションのメニューからファイルを開くこともできます。それはフォーマットのようなものを調整することができる魔法使いを開きます。

+0

SASが既にその変数が文字であると判断した場合は、リストモードの入力に$は必要ないことに注意してください。その目的は、SASが最初にINPUTステートメントで数値として参照されている未知の変数を定義するのを防ぐことです。 INPUTステートメントの前のINFORMATステートメントには、インフォーメーションを付加するだけでなく、変数のタイプをSASが強制的に選択するという副作用があります。 – Tom

関連する問題