【问题标题】:SAS: Adding value after last entry in columnSAS:在列中的最后一个条目后添加值
【发布时间】:2019-10-30 19:57:03
【问题描述】:

我有以下数据集:

Student     TestDay          Score
001         1                85
001         6                76
001         7                89
002         1                92
002         5                82
002         7                93

我想在“Score”列中的最后一个非空值之后添加一个“100”值,并将 TestDay 的值加一。所以新数据如下所示:

Student     TestDay          Score
001         1                85
001         6                76
001         7                89
001         8                100
002         1                92
002         5                82
002         7                93
002         8                100

【问题讨论】:

  • 如果最后一个值的分数已经是 100 会怎样?如果最后一天不是 7 点怎么办?如果最后一天已经是 8 点了怎么办?

标签: arrays loops sas


【解决方案1】:

不需要数组或循环。

data want;
  set have;
  by student;
  output;
  if last.student then do;
    score=100;
    testday=testday+1;
    output;
  end;
run;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 2012-04-26
    • 1970-01-01
    相关资源
    最近更新 更多