Sas分组字符串

时间:2015-12-17 11:10:21

标签: sas

我有一个数据集,它包含近6000个观察结果,看起来像这样

Id        mark
134663    000
134663    000
134663    000
134665    101
134665    111
134665    101
134973    000
134973    000
134973    100

此数据集上的标记是字符串,由mark = mark1 !! mark2 !! mark3生成 我想要做的是按id分组这个数据集,而mark应该是最大的数据集 。 最后应该看起来像这样

id      mark
134663  000
134665  111
134973  100

我尝试了不同的东西,但无法做到。我希望我说清楚。如果你们能解决这个问题那将是非常棒的 谢谢,

2 个答案:

答案 0 :(得分:2)

也尝试使用proc sql:

RLMArray *persons = [Person objectsWhere:@"ANY dogs = %@", dogX];

答案 1 :(得分:1)

您可以使用PROC SUMMARY IDGROUP查找每个ID的最大MARK。

data mark;
   input (id mark)(:$6. :$3.);
   cards;
134663    000
134663    000
134663    000
134665    101
134665    111
134665    101
134973    000
134973    000
134973    100
;;;;
   run;
proc print;
   run;
proc summary data=mark nway;
   class id;
   output out=maxmark(drop=_:) idgroup(max(mark) out(mark)=);
   run;
proc print;
   run;

enter image description here