SAS-更改proc导入CSV中列的格式

SAS-更改proc导入CSV中列的格式,csv,sas,Csv,Sas,我不太清楚如何更改数据文件中列的格式。我导入了数据集proc,它猜测特定列的格式为数字,我希望是基于字符的 这就是我目前所在的位置,它不会更改我的数字列的格式: proc import datafile = 'datapath' out = dataname dbms = CSV replace ; format NUMBER $8. ; guessingrows = 20000 ; run; 您可以导入数据,然后在使用后格式化-我相信下面的方法

我不太清楚如何更改数据文件中列的格式。我导入了数据集proc,它猜测特定列的格式为数字,我希望是基于字符的

这就是我目前所在的位置,它不会更改我的数字列的格式:

proc import
    datafile = 'datapath'
    out = dataname
    dbms = CSV
    replace
;
    format NUMBER $8.
;
    guessingrows = 20000
;
run;

您可以导入数据,然后在使用后格式化-我相信下面的方法可以奏效

proc sql;
   create table want as
  select *, 
      put(Number, 4.) as CharacterVersion
 from data;

退出

无法通过PROC导入更改类型/格式。但是,您可以编写一个数据步骤来读取文件,然后自定义所有内容。如果您不确定如何开始,请在运行PROC导入后检查日志,它将包含“骨架”代码。您可以复制、编辑代码,然后运行以获得所需的内容。使用infle和INPUT语句也可以从头开始编写

从帮助文件搜索在SAS中处理分隔文件

如果在过程运行后需要修改代码,请发出回调命令或按F4键进入生成的数据步骤。此时,您可以添加或删除infle语句中的选项,并自定义数据的INFORMAT、FORMAT和INPUT语句


当然,这一部分的语法很可怕!其思想是导入过程生成的源代码可以重新调用和修改以供后续提交。

注意,文本文件不需要使用PROC导入。只需编写您自己的数据步骤来读取它。在联接中是否也可以这样做?我似乎仍然有这个问题:x在putx上左键连接y。数字,4y、 首先对这部分进行编号,然后在单独的表格中加入。非常感谢。