更改SAS中的分隔符

时间:2015-10-29 20:35:09

标签: csv sas

我有一个文本文件,我想将分隔符从逗号更改为管道(|)。这是数据文件的样子 -

P0020016,450.05,20150818000000,24.1,140,1
P0020016,450.05,20150818010000,24.1,140,1
P0020016,450.05,20150818020000,24.1,140,1

如何在SAS中将逗号更改为管道?我尝试使用ODS CSV但它没有用。谢谢!

3 个答案:

答案 0 :(得分:0)

我只想使用简单的DATA _NULL进行更改。

data _null_;
  length x1-x6 $200 ;
  infile 'old.csv' dsd dlm=',' truncover ;
  file 'new.pipe' dsd dlm='|' ;
  input x1-x6 ;
  put x1-x6;
run;

您可以将6变为宏变量。您甚至可以添加一个步骤来读取第一行并计算有多少列并设置宏变量。如果$ 200太短,你可以改变你读取数据的字符变量的长度。

答案 1 :(得分:-1)

目前尚不清楚您正在寻找什么,但这可能会有所帮助:

data test;
text = "P0020016,450.05,20150818000000,24.1,140,1";
text2 = tranwrd(text,',','|');
run;

答案 2 :(得分:-1)

我会将文件读入数据集,然后使用下面的DATA步骤导出。

这将导出您的文件并将分隔符声明为“|” (或您想指定的任何其他字符)

Client.where("LENGTH(REGEXP_REPLACE(phone,'[^\d]', '')) > 10")

CRLF将确保它不会创建一个长行。