【问题标题】:How can I generate dummy variables manually?如何手动生成虚拟变量?
【发布时间】:2017-10-27 01:32:30
【问题描述】:

这里是频率过程:

freq procedure

为什么 TRD_EVENT_ROUFOR_1 和 TRD_EVENT_ROUFOR_2 列完全为零? 为什么它没有显示其他假人(例如 TRD_EVENT_ROUFOR_8)? 问题是什么?我的代码哪一部分错了?

这是我的代码?

 DATA Sampledata87_02_Mer_DumVar;
  SET Sampledata87_02_Mer ;

    IF TRD_EVENT_ROUFOR = '9:00' THEN TRD_EVENT_ROUFOR_1 = 1; 
    ELSE TRD_EVENT_ROUFOR_1 = 0;
    IF TRD_EVENT_ROUFOR = '9:30' THEN TRD_EVENT_ROUFOR_2 = 1; 
    ELSE TRD_EVENT_ROUFOR_2 = 0;
    IF TRD_EVENT_ROUFOR = '10:00' THEN TRD_EVENT_ROUFOR_3 = 1; 
    ELSE TRD_EVENT_ROUFOR_3 = 0;
    IF TRD_EVENT_ROUFOR = '10:30' THEN TRD_EVENT_ROUFOR_4 = 1; 
    ELSE TRD_EVENT_ROUFOR_4 = 0;
    IF TRD_EVENT_ROUFOR = '11:00' THEN TRD_EVENT_ROUFOR_5 = 1; 
    ELSE TRD_EVENT_ROUFOR_5 = 0;
    IF TRD_EVENT_ROUFOR = '11:30' THEN TRD_EVENT_ROUFOR_6 = 1; 
    ELSE TRD_EVENT_ROUFOR_6 = 0;
    IF TRD_EVENT_ROUFOR = '12:00' THEN TRD_EVENT_ROUFOR_7 = 1; 
    ELSE TRD_EVENT_ROUFOR_7 = 0;
    IF TRD_EVENT_ROUFOR = '12:30' THEN TRD_EVENT_ROUFOR_8 = 1; 
    ELSE TRD_EVENT_ROUFOR_8 = 0;
    IF TRD_EVENT_ROUFOR = '13:00' THEN TRD_EVENT_ROUFOR_9 = 1; 
    ELSE TRD_EVENT_ROUFOR_9 = 0;
RUN;

PROC FREQ DATA=Sampledata87_02_Mer_DumVar;
  TABLES TRD_EVENT_ROUFOR*TRD_EVENT_ROUFOR_1*TRD_EVENT_ROUFOR_2*TRD_EVENT_ROUFOR_3*TRD_EVENT_ROUFOR_4*TRD_EVENT_ROUFOR_5 / list ;
RUN;

还有,这是内容程序:

CONTENTS Procedure

【问题讨论】:

  • 阿明,请您添加一些有用的数据。

标签: sas statistics regression dummy-variable


【解决方案1】:

对于前两个变量“9:00”和“9:30”,我猜它们在字符变量$5 中是正确的。实际上是“9:00”和“9:30”。

通常您不需要在 SAS 中创建虚拟对象,您可以改用 CLASS 语句。如果您确实想创建它们,有两个过程对 PROC GLMMOD 和 PROC TRANSREG 很有帮助。

包含示例数据通常很有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-28
    • 2012-08-10
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多