SAS 中的last.group 语句

发布于 2024-12-16 11:37:31 字数 116 浏览 0 评论 0原文

我有一个按 x1 和 x2 排序的数据集。对于 x1 的每个值,我只想打印 x2 的最后一个值。我该怎么做?会不会是这样的:

if last.x2 then print;

I have a data set sorted by x1 and x2. For every value of x1 I want to only print the last value of x2. How do I do this? Would it be something like:

if last.x2 then print;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

寂寞美少年 2024-12-23 11:37:31

您是对的,您可以使用 last 语句,但不能在 print 语句中使用它。试试这个:

data tmp;
 set mydataset;
 by x1 x2;
 if last.x1;
run;

proc print data=tmp; run;

You're right that you can use the last statement, but you can't use it in a print statement. Try this:

data tmp;
 set mydataset;
 by x1 x2;
 if last.x1;
run;

proc print data=tmp; run;
哆兒滾 2024-12-23 11:37:31

Itzy 很接近,但 LAST 语句需要更改为引用 X1,如下所示:

data tmp;
 set mydataset;
 by x1 x2;
 if last.x1;
run;

proc print data=tmp; run;

Itzy was close, but the LAST statement needs to be changed to refer to X1, like in the following:

data tmp;
 set mydataset;
 by x1 x2;
 if last.x1;
run;

proc print data=tmp; run;
番薯 2024-12-23 11:37:31

这将打印具有最大值 x2 的单行。

proc sort data=mydataset;
  by x2;
run;

data tmp;
  set mydataset end=eof;
  if eof then do;
    output;
  end;
run;

proc print data=tmp;
run;

请注意,如果有多行具有最大值,则只会打印其中的一行。

This will print a single row that has the largest value of x2.

proc sort data=mydataset;
  by x2;
run;

data tmp;
  set mydataset end=eof;
  if eof then do;
    output;
  end;
run;

proc print data=tmp;
run;

Note, that if there are multiple rows with the largest value, only one of them will be printed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文