【发布时间】:2014-07-07 19:36:52
【问题描述】:
我正在查看 Stata 中的一个数据集,该数据集具有许多重复的 ID 值(每个代表一个人),但 ID 的每个实例都可以具有两个值之一。例如,
PersonID | Place
------------------------
1 | New York
1 | New York
1 | Berlin
2 | Chicago
2 | Chicago
3 | Berlin
3 | Chicago
我想仅选择 ID 的 1 和 2,因为它们具有混合值并忽略 ID 3,但仍将 1 和 2 视为单身人士。
我会很感激有关如何在 Stata 或 Excel 中执行此操作的提示。我无权访问 SQL。
编辑
我更改了原来的伪图表以更好地反映我的数据。
这是我已经尝试过的代码:
sort PersonID Place
by PersonID(Place), sort: gen mix=Place[1] != Place[_n]
count PersonID Place if mix
这没有用。它在第 2 行之后给了我以下错误:
factor variables and time-series operators not allowed
更清楚地说,我想要的是具有混合位置值的 PersonID 的计数。
【问题讨论】:
-
在 Excel 中使用 VBA 有很多方法可以做到这一点。我将从一个循环中的一个循环开始,该循环测试是否有任何其他 ID 具有相同的数字以及它们是否具有相同的值,或者构建一个 ID 列表并使用自动过滤器并测试每个 ID 的所有值是否相同身份证。
-
你试过什么? (我对 Stata 代码特别感兴趣,但我认为其他软件用户也想知道。)
-
@RobertoFerrer 我尝试过使用
sort ID by BookingID: gen duplicate=_n,然后使用count if duplicate==1 & response==1 & response==0,其中 1 和 0 分别是 y 和 n……以及几乎所有的组合。 -
@RobertoFerrer 我想我应该确定哪个预订 ID 有两个答案,然后计算重复项,但我不知道该怎么做。
-
最好编辑您的问题以显示代码。有经验的 Stata 用户几乎可以阅读它,但每个人都可以正确显示它会更清楚。