2017-03-28 25 views
0

我正在尝试使用proc surveyselect创建一个基于2列的独特样本数据集。 我有一个person_id和household_id简单的表。在这种情况下,person_id是我的“主键”,它是创建样本的主要输入。但是我需要确保我不会在sample和base数据之间混合使用household_id。 因此,如果household_id = 123是样本,则不允许出现在基础数据中(即使使用其他person_id),反之亦然。sas proc surveyselect with contstraint on column

你有一个方便的想法?我所有的解决方案预处理或后处理将影响样本大小。

谢谢! E.

回答

1

正如你所发现的,proc surveyselect不允许这种约束。如果您想要适应,您将不得不接受样本中的轻微变形。我的建议是进行如下操作:

  • 使用PROC SURVEYSELECT创建随机抽样
  • 识别样本数据集也存在于基础数据集中的所有household_ids。假设有N个。
  • 从基础数据集中创建另一个大小为N的样本,排除原始样本中的所有household_id。
  • 将所有匹配的household_id行放回到基本数据集中,将它们从原始样本中删除,然后将新样本追加到原始样本。
+0

嗨,这就是我正在做的现在。我希望能找到一个开箱即用的解决方案:)谢谢user667489 – Ele