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

将数据集中的sas数值变量类型转换为字符类型,sas,type-conversion,character,numeric,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

我正在使用以下代码将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;

不能使用PROC数据集更改变量的定义或值。您需要创建一个新的数据集。可以使用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猜测您有哪些数据。然后您可以控制变量的创建方式