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;
我要阅读这些数据。虽然分隔符很明显是“〜”,但由于“;”而我读到观察的最后一栏时遇到了问题。
我怎样才能让SAS读取16,6,1,4,9,880而不是“;” ? 感谢
答案 0 :(得分:6)
只需指定';'在分隔符语句中,以及'〜'
data test;
infile "/path/to/file" delimiter='~;';
input var1 $ var2 $ var3-var7 var8;
run;
答案 1 :(得分:2)
你可以阅读';'然后使用compress函数将其删除:
a=compress(b,";");
你可能想要一个数字:
a=input(compress(b,";"),best.);
如果我这样做,我可以使用 INFILE 变量和SCAN函数:
data mydata;
infile "/path/to/my/file";
input;
rogue_var=scan(_infile_,-1,"~;");
rogue_var_num=input(scan(_infile_,-1,"~;"),best.);
run;
请注意,“-1”作为SCAN函数的第二个参数意味着我们从行尾开始第一个单词。