将数据集中的sas数值变量类型转换为字符类型

时间:2016-01-04 02:25:46

标签: sas type-conversion character numeric

我正在使用以下代码将csv导入sas数据集:

PROC IMPORT
     DATAFILE  = '/folders/myshortcuts/SASsoftware_rialto_2015/providence_med_claims_15.csv'
     OUT  = medical
     DBMS=DLM REPLACE;
     DELIMITER='|';
     getnames=yes;
run;

对于后续代码,它希望此数据集中名为DIAGNOSIS_VERSION_CODE的字段之一是字符类型而不是默认的数字类型。如何更改上述代码中的默认值或转换数据集中的字段?

我尝试过这个并没有用:

contents data=medical;
      modify medical;
         format  DIAGNOSIS_VERSION_CODE $CHAR8.;
   contents data=medical;
run;

1 个答案:

答案 0 :(得分:0)

您无法使用PROC DATASETS更改变量的定义或值。您需要创建一个新数据集。您可以使用RENAME语句使新变量具有旧变量的名称。

data new_medical;
  set medical ;
  new_diagnosis_version_code = put(diagnosis_version_code,Z8.);
  rename diagnosis_version_code=old_diagnosis_version_code 
         new_diagnosis_version_code=diagnosis_version_code
  ;
run;

为了防止将来出现这种情况,您应该编写自己的数据步骤来读取数据,而不是要求PROC IMPORT猜测您拥有的数据。然后您可以控制变量的创建方式。