【发布时间】:2018-07-05 04:43:54
【问题描述】:
我正在尝试修改现有的 .csv 文件并将新版本保存到另一个位置。任务是:
1) 给变量名加上不同的标签
2) 有条件地修改其中一个变量的内容
%let infile=/.../file.csv;
%let outfile=/.../new_file.csv;
data _null_ ;
infile "&infile" dsd dlm=',' lrecl=2000 truncover ;
file "&outfile" dsd dlm='|' lrecl=200 ;
length var1-var5 $161 ;
input var1-var5 ;
put (var1-var3 var5) (+0) ;
label var1='#var1' var2='Variable 2';
if var5 = 'donkey' then var3 = 'donkey '||var3 ;
run;
我是否需要实际导入初始文件,对其进行更改,然后再将其写回?
【问题讨论】:
-
取决于您如何定义“导入”,您在上面所做的工作是否可行,但您需要为第一行添加条件并确保在 put 语句之前重新编码变量。在这种情况下,您在更改 Var3 之前将它们写回。我还认为在这种情况下需要在 PUT 语句中定义分隔符,但您可以轻松地对其进行测试。