sas proc surveyselect with contstraint on column

时间:2017-03-28 08:31:14

标签: sas

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

你有一个方便的想法吗?我的所有解决方案预处理或后处理都会影响样本量。

谢谢! 即

1 个答案:

答案 0 :(得分:1)

如您所见,proc surveyselect不允许这种约束。如果您想要容纳它,您将不得不接受采样中的轻微失真。我的建议如下:

  • 使用proc surveyselect创建随机样本
  • 标识样本数据集中也存在于基础数据集中的所有household_id。让我们说有N个。
  • 从基础数据集中创建另一个大小为N的样本,并排除原始样本中的所有household_id。
  • 将所有匹配的household_id行放回基础数据集中,将其从原始样本中删除,然后将新样本附加到原始样本中。