Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sas 设置日期列的格式时使用“&引用;显示在同一列中_Sas - Fatal编程技术网

Sas 设置日期列的格式时使用“&引用;显示在同一列中

Sas 设置日期列的格式时使用“&引用;显示在同一列中,sas,Sas,我有几个带有日期的列,一些条目包含条目“”,其他条目包含MMDDYY10中的日期。格式 我会在稍后比较日期,并使用代码进行比较,但缺少的条目和“?”会导致出现错误并创建观察结果 这是我的进口代码: data WORK.esn_service ; %let _EFIERR_ = 0; /* set the ERROR detection macro variable */ infile 'C:\Documents and S

我有几个带有日期的列,一些条目包含条目“”,其他条目包含MMDDYY10中的日期。格式

我会在稍后比较日期,并使用代码进行比较,但缺少的条目和“?”会导致出现错误并创建观察结果

这是我的进口代码:

 data WORK.esn_service                               ;
   %let _EFIERR_ = 0; /* set the ERROR detection macro variable */
   infile 'C:\Documents and Settings\richardg\Desktop\Sirius\esn_service.csv' delimiter = ',' MISSOVER DSD lrecl=32767 firstobs=2 ;
  informat DEACTIVATION_DATE best10. ;
  informat DEACTIVATION_REASON $35. ;
  informat REACTIVATION_DATE best10. ;
  format DEACTIVATION_DATE mmddyy10. ;
  format DEACTIVATION_REASON $35. ;
  format REACTIVATION_DATE mmddyy10. ;
  input

               DEACTIVATION_DATE 
               DEACTIVATION_REASON $
               REACTIVATION_DATE 

   ;
  if _ERROR_ then call symputx('_EFIERR_',1);  /* set ERROR detection macro variable */
  run;

两个日期列导致了错误。我需要稍后比较日期,所以我不能只选择一个随机日期来替换问题单元格

您在如何导入数据方面遇到了问题。一旦一个列成为一个字符变量,它就会被卡住——你必须创建一个新的列来改变它。更改导入方式以将其作为数字输入,或者为每个列创建一个新列以强制其为数字

如果您的数据中已经有MMDDYY10(在CSV文件中),那么您需要使用INFORMAT。INFORMAT控制SAS读取数据的方式

data WORK.esn_service                               ;
   %let _EFIERR_ = 0; /* set the ERROR detection macro variable */
   infile 'C:\Documents and Settings\richardg\Desktop\Sirius\esn_service.csv' delimiter = ',' MISSOVER DSD lrecl=32767 firstobs=2 ;
  informat DEACTIVATION_DATE mmddyy10. ;
  informat DEACTIVATION_REASON $35. ;
  informat REACTIVATION_DATE mmddyy10. ;
  format DEACTIVATION_DATE mmddyy10. ;
  format DEACTIVATION_REASON $35. ;
  format REACTIVATION_DATE mmddyy10. ;
  input

               DEACTIVATION_DATE 
               DEACTIVATION_REASON $
               REACTIVATION_DATE 

   ;
  if _ERROR_ then call symputx('_EFIERR_',1);  /* set ERROR detection macro variable */
  run;

使用MMDDYY10。强制它是数字?或者,是否需要指定其他格式?很抱歉这里的问题初始数据集,
esn\U服务
,已经包含了这些变量,是吗?它们作为字符引入,可能是因为您正在从CSV或Excel导入,它正在扫描列并查找字符(“?”)<代码>格式不会更改变量的类型,除非该变量在该语句之前不存在。是。SAS中的日期是数字。MMDDYY10。是一种格式化要显示为日期的数字的格式。您是如何导入数据的?我使用了导入向导,然后复制了代码以便编辑它。csv太大,无法在excel中完全打开,因此我可以删除其中的?。我已尝试将格式和信息更改为mmddyy10。最好的10种,几乎每种组合。我不断地犯错误,因为有人问了你的问题,并从你的CSV文件中添加了前五行或六行。您混淆了信息的含义、格式和数据类型。您需要向我们显示您试图读取的原始数据。