SAS数据的合并
一般包括数据合并、比较、缺失值的查询和填补、查找重复值和异常值、生成数据子集、产生新变量等,以适应不同的研究目的。
如果set后面只有一个数据集,相当于复制。针对数据集的一些选项,作者介绍了2个非常实用的选项:
数据集1(in=临时变量1) 的意思是针对数据集1产生一个临时变量1(变量名自己定),当合并的记录属于数据集1时,该临时变量值为1,否则为0.但要注意这种方式产生的临时变量可以调用,但不会在结果中显示,若想显示需要将临时变量赋值给新变量。
另外,若不同数据集的相同变量格式不同,需要先用 input...;format...; 统一一下变量的格式再进行合并,例如:
数据集变量格式查询命令为:
其中, merge 的作用是将若干个数据集依次向右连接,并存当道一个新数据集中。 by 相当于指定索引,若不指定则按行号直接合并。
注意: 在利用 by 语句横向合并时,如果两个数据集事先没有按id排序,一定要先分别对他们都排序才能合并( proc sort 语句)。 合并时默认显示所有的记录,也就是两个数据集的并集,缺少的记录作为缺失值。
若想产生交集则需要借助 in= 选项,例如(数据的具体内容请自行查看《小白学SAS》page 95 ):
当 if 跟在 set 或 merge 语句后面时,它所起的作用就是根据指定的表达式保留符合条件的观测。
2023-08-15 广告