SAS 按标识符折叠数据
SAS collapse data by identifiers
我有一堆数据,我想用几个标识符变量折叠起来,只保留其他变量的非缺失值。对于 id、title、info 的每个唯一组合,var1/var2/var3 的 1 个值都没有丢失,我想保留。请注意,var3 是数字,而 var1/var2 是字符。
我有这样的数据:
id title info var1 var2 var3
1 foo Some string here string 1
1 foo Some string here string 2
1 foo Some string here number 3
2 bar A different string string 4 string 5
2 bar A different string number 6
3 baz Something else string 7 number 8
我希望它像:
id title info var1 var2 var3
1 foo Some string here string 1 string 2 number 3
2 bar A different string string 4 string 5 number 6
3 baz Something else string 7 number 8
谢谢!
UPDATE 语句可以解决这个问题。将使用最后一个非缺失值。 UPDATE 语句恰好采用两个数据集,主数据集和事务数据集。主数据集每个组必须只有一个观察值。但是您可以通过使用 OBS=0 数据集选项创建一个空的主数据集来使用您的单一数据集。
首先是您的示例数据。
data have ;
infile cards dsd truncover ;
length id 8 title info var1-var3 ;
input id -- var3 ;
cards;
1,foo,Some string here,string 1,,
1,foo,Some string here,,string 2,
1,foo,Some string here,,,number 3
2,bar,A different string,string 4,string 5,
2,bar,A different string,,,number 6
3,baz,Something else,string 7,,number 8
;;;;
这里是崩溃的步骤
data want ;
update have(obs=0) have ;
by id title info;
run;
我有一堆数据,我想用几个标识符变量折叠起来,只保留其他变量的非缺失值。对于 id、title、info 的每个唯一组合,var1/var2/var3 的 1 个值都没有丢失,我想保留。请注意,var3 是数字,而 var1/var2 是字符。
我有这样的数据:
id title info var1 var2 var3
1 foo Some string here string 1
1 foo Some string here string 2
1 foo Some string here number 3
2 bar A different string string 4 string 5
2 bar A different string number 6
3 baz Something else string 7 number 8
我希望它像:
id title info var1 var2 var3
1 foo Some string here string 1 string 2 number 3
2 bar A different string string 4 string 5 number 6
3 baz Something else string 7 number 8
谢谢!
UPDATE 语句可以解决这个问题。将使用最后一个非缺失值。 UPDATE 语句恰好采用两个数据集,主数据集和事务数据集。主数据集每个组必须只有一个观察值。但是您可以通过使用 OBS=0 数据集选项创建一个空的主数据集来使用您的单一数据集。
首先是您的示例数据。
data have ;
infile cards dsd truncover ;
length id 8 title info var1-var3 ;
input id -- var3 ;
cards;
1,foo,Some string here,string 1,,
1,foo,Some string here,,string 2,
1,foo,Some string here,,,number 3
2,bar,A different string,string 4,string 5,
2,bar,A different string,,,number 6
3,baz,Something else,string 7,,number 8
;;;;
这里是崩溃的步骤
data want ;
update have(obs=0) have ;
by id title info;
run;