【问题标题】:SAS, PROC FORMAT change string to numericSAS,PROC FORMAT 将字符串更改为数字
【发布时间】:2017-01-09 12:25:21
【问题描述】:

我想在字符串变量(星期一、星期二、星期三、星期四、星期五)上创建一个格式,以查看结果为 1 到 5,这样我就可以对数据进行排序。我试过了:

proc format;
     value days
     'Monday'=1
     'Tuesday'=2
     'Wednesd'=3
     'Thrusda'=4
     'Friday'=5
run;

在日志文件中,出现类似这样的错误:

错误:带引号的字符串 'Monday' 不能被数字格式或信息所接受。 错误 22-322:语法错误,需要以下之一:带引号的字符串、格式名称。 错误 200-322:符号无法识别,将被忽略。

附加信息

创建格式后,我将在绘图中应用它,如下所示:

 PROC GLM data=Newspaper;
      class Day Newspaper;
      model ad_effect = Day|Newspaper;
      **format Day days.;**
      title 'Analyze the effects of Day & Newspaper';
      title2 'Including Interaction';
 run;
 quit;
 title;

使用格式,散点图中的标记可以按星期一到星期五的顺序显示。否则,标记将按字母顺序显示。

请分享您的想法。

【问题讨论】:

    标签: sas proc proc-format


    【解决方案1】:

    您可以使用和 INFORMAT 通过将日期名称读取为数字来创建新变量。例如。

    proc format;
       invalue days
         'Monday'=1
         'Tuesday'=2
         'Wednesd'=3
         'Thrusda'=4
         'Friday'=5;
       run;
    data days;
       input day:days.;
       cards;
    Monday
    Tuesday
    Wednesd
    ;;;;
       run;
    proc print;
       run;
    

    【讨论】:

    • @data-null 感谢您的回答,这确实帮助我创建了 days 格式。以下问题,如何将其应用于图形和模型?例如,我在语法中使用了 Format Day days.;,但弹出错误消息说 The format DAYS was not found or could not be loaded. . **
    • 我的示例没有创建它创建的 FORMAT 和 INFORMAT。您必须提供有关您的数据和程序以及您正在尝试做什么的更多信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    相关资源
    最近更新 更多