SAS删除关键字删除了一切

时间:2017-06-14 19:40:22

标签: sas

我使用以下代码在特定条件下从数据集中删除某些行:

  data MK_RETURN;
    /*delete some data to solve the beta zero problem*/
    if CUM_RETURN<RMIN then delete;
  run;

然而,我发现数据集MK_RETURN不仅变空,而且还缺少所有变量但CUM_RETURN并返回。

在删除操作之前,数据集包含六到七个变量。但是在删除操作之后,数据集只包含两个(空变量),即CUM_RETURN,RMIN。

这里有什么问题?

输入数据类似于

+--------+----------+------+--------------+--------------+-------------+----------+----------------+
| SYMBOL |   DATE   | time |  CUM_RETURN  |  return_sec  |    RMIN     |  one_M   | MK_RETURN_RATE |
+--------+----------+------+--------------+--------------+-------------+----------+----------------+
| A      | 20130108 |    1 | 0            |              | 0.00023571  | 1.90E-11 | 3.130243764    |
| A      | 20130108 |    2 |              | -0.00117855  | 0.000235988 | 1.90E-11 | 0.000274509    |
| A      | 20130108 |    3 | 0.000471976  | 0.000471976  | 0.000235877 | 1.90E-11 | 6.86083E-05    |
| A      | 20130108 |    4 |              | -0.000471754 | 0.000235988 | 1.90E-11 | 6.86036E-05    |
| A      | 20130108 |    5 | -0.000471976 | -0.000943953 | 0.000236211 | 1.90E-11 | 6.85989E-05    |
| A      | 20130108 |    6 |              | -0.002362112 | 0.000236771 | 1.90E-11 | 0              |
| A      | 20130108 |    7 | 0.000711876  | 0.001183852  | 0.000236491 | 1.90E-11 | -0.000137188   |
| A      | 20130108 |    8 |              | 0.001300698  | 0.000236183 | 1.90E-11 | 0              |
| A      | 20130108 |    9 | 0.000711876  | 0            | 0.000236183 | 1.90E-11 | 0              |
| A      | 20130108 |   10 |              | 0            | 0.000236183 | 1.90E-11 | 0.000137207    |
| A      | 20130108 |   11 | 0.000711876  | 0            | 0.000236183 | 1.90E-11 | 0.000137188    |
| A      | 20130108 |   12 |              | 0.000590458  | 0.000236044 | 1.90E-11 | 6.85848E-05    |
| A      | 20130108 |   13 | 0.000711876  | 0            | 0.000236044 | 1.90E-11 | 0              |
| A      | 20130108 |   14 |              | -0.000118022 | 0.000236072 | 1.90E-11 | -0.0003429     |
| A      | 20130108 |   15 | 0.000711876  | 0            | 0.000236072 | 1.90E-11 | -0.000068604   |
+--------+----------+------+--------------+--------------+-------------+----------+----------------+

1 个答案:

答案 0 :(得分:6)

您没有声明输入数据集(没有set语句) - 所以您创建了一个名为MK_RETURN的新的空数据集,其中包含两个变量,如果没有定义,这两个变量被指定为缺失的数字。

尝试以下(如果不是太晚):

data MK_RETURN;
  set INPUTDATASET;  /* THIS is the line you need */
  /*delete some data to solve the beta zero problem*/
  if CUM_RETURN<RMIN then delete;
run;