将列连接到变量中

时间:2014-04-25 18:35:18

标签: sas

嗨,我认为这是一个非常简单的问题,我有一个这样的记录,例如:

name value
Mack 12
Mack 10
Mack 50

现在我想将所有值放在变量或单行中。结果应该是

value_concat
12,10,50

我尝试使用SAS的第一个也是最后一个声明,但这对我不起作用就是我写的:

data List_Trt1;
    set List_Trt;
    by name;

    if first.name then  value_concat = value;
    value_concat = cats(value_concat,",",value);
    if last.name then value_concat = cats(value_concat,",",value);

run;

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

你走在正确的轨道上。

data List_Trt1;
  set List_Trt;
  by name;
  length value_concat $30; *or whatever is appropriate;
  retain value_concat;
  if first.name then value_concat=' ';
  value_concat=catx(',',value_concat,value);
  if last.name then output;
run;

首先,您需要保留,以便始终保持其价值。其次,您需要在first.name上将其初始化为空白。第三,您只需要在last.name上输出。我使用CATX因为它更适合您正在做的事情,但您的CATS也应该没问题。

相关问题