记录时间:2017年09月04日 AM
记录人:golden
这一周有新的任务,但是我想把前面的任务再好好的检查一遍,于是就挨个检查了一遍。检查到几个数据集的时候,发现有些不对。具体的问题就是我的dataset里面的Observations的数目对不上。然后我就开始找为什么对不上的原因。
起初我以为是因为我的做法不对。需要做的问题是,把针对一个变量的不同取值分组取出来,那么我的办法是先分别针对变量的不同取值分别取出来做成数据集,然后使用merge by就可以了。前面的Record1里面已经提到,在进行merge by之前需要对数据进行proc sort。如果有多个变量,那么这些变量都需要进行proc sort。否则进行merge by的时候,不同dataset的相同的variable会被覆盖。那么这些问题也就解决了。但是现在的问题是为什么observations的数目对不上,所以我不禁怀疑了一下是否在这个地方使用merge是不正确的。处于对自己的不自信,我还是用了另外一种方法proc transpose进行了一下检查。Proc transpose的用法如下:
Proc transpose data=input-dataset put=output-dataset; By By-variables; Id Id-variables; Var Need-to-transpose-name; Run; |
其中input-dataset:需要被转置的dataset,即原dataset。