1

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

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

在日志文件中,出现如下错误:

错误:带引号的字符串“星期一”不能被数字格式或信息所接受。错误 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;

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

请分享你的想法。

4

1 回答 1

2

您可以使用和 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;
于 2017-01-09T13:15:32.057 回答