【问题标题】:SAS - Change the format of a column in a proc imported CSVSAS - 在 proc 导入的 CSV 中更改列的格式
【发布时间】:2019-09-26 15:24:53
【问题描述】:

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

这是我目前所在的位置,它不会改变我的 NUMBER 列的格式:

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

【问题讨论】:

  • 请注意,文本文件不需要使用 PROC IMPORT。只需编写您自己的数据步骤即可读取它。

标签: csv sas


【解决方案1】:

您可以导入数据,然后在使用后格式化 - 我相信以下方法会起作用。

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

退出;

【讨论】:

  • 这在连接中是否同样有效?我似乎仍然有这个问题: x left join y on put(x.number, 4.) = y.number
  • 先做这部分,然后在一个单独的表中加入。谢谢!
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    从帮助文件中(搜索“在 SAS 中处理分隔文件”)

    如果您需要在程序运行后修改您的代码,请向生成的 DATA 步发出 RECALL 命令(或按 F4)。此时,您可以在 INFILE 语句中添加或删除选项,并为您的数据自定义 INFORMAT、FORMAT 和 INPUT 语句。

    当然,这部分的语法太可怕了!这个想法是IMPORT 过程生成的源代码可以被调用和修改以供后续提交。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-24
      • 2015-12-05
      • 1970-01-01
      • 2017-10-01
      • 1970-01-01
      • 2018-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多