1
26/03/2012~19:45:58~1~1636~00000000000000000000~41.45~17~16;
28/03/2012~19:45:58~1~1636~00000000000000000000~41.45~17~6;
29/03/2012~19:45:58~1~1636~00000000000000000000~41.45~17~1;
23/03/2012~19:45:58~1~1636~00000000000000000000~41.45~17~4;
25/03/2012~19:45:58~1~1636~00000000000000000000~41.45~17~9;
27/03/2012~19:45:58~1~1636~00000000000000000000~41.45~17~880;

読み取るデータがあります。区切り文字が「~」であることは明らかですが、「;」が原因で観測の最後の列を読み取る際に問題が発生しました。

「;」ではなく、16、6、1、4、9、880を読み取るようにSASに指示するにはどうすればよいですか ? ありがとう

4

2 に答える 2

6

「;」を指定するだけです 区切りステートメントで、'~' とともに

data test;
infile "/path/to/file" delimiter='~;';
input var1 $ var2 $ var3-var7 var8;
run;
于 2012-05-22T14:16:56.410 に答える
2

「;」で読むことができます そして、compress 関数を使用してそれを取り除きます。

a=compress(b,";");

おそらく数値が必要になるでしょう:

a=input(compress(b,";"),best.);

これを行う場合、SCAN 関数とともにINFILE変数を使用する可能性があります。

data mydata;
  infile "/path/to/my/file";
  input;
  rogue_var=scan(_infile_,-1,"~;");
  rogue_var_num=input(scan(_infile_,-1,"~;"),best.);
run;

SCAN 関数の 2 番目のパラメーターとしての "-1" は、行末から最初の単語を取得することを意味することに注意してください。

于 2012-05-22T14:03:09.017 に答える