Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何选择具有不同值的重复ID?_Database_Excel_Stata - Fatal编程技术网

Database 如何选择具有不同值的重复ID?

Database 如何选择具有不同值的重复ID?,database,excel,stata,Database,Excel,Stata,我在看Stata中的一个数据集,它有许多重复的ID值(每个值代表一个人),但ID的每个实例可以有两个值中的一个。比如说, PersonID | Place ------------------------ 1 | New York 1 | New York 1 | Berlin 2 | Chicago 2 | Chicago 3 | Berlin 3 | Chicago 我只想选择ID的1和2,因

我在看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的计数。

扩展生成(也称为
egen
,以及它的用户编写的附加函数
egenmore
)对于以下任务非常方便:

ssc install egenmore    
bys PersonID: egen nvals=nvals(Place)
edit if nvals >1
我不确定“仍然将1和2视为单人”是什么意思,但这应该可以让您开始了。

扩展生成(也称为
egen
,以及它的用户编写的附加函数
egenmore
)对于以下任务非常方便:

ssc install egenmore    
bys PersonID: egen nvals=nvals(Place)
edit if nvals >1
我不确定“仍然将1和2视为单人”是什么意思,但这应该可以让您开始了。

扩展生成(也称为
egen
,以及它的用户编写的附加函数
egenmore
)对于以下任务非常方便:

ssc install egenmore    
bys PersonID: egen nvals=nvals(Place)
edit if nvals >1
我不确定“仍然将1和2视为单人”是什么意思,但这应该可以让您开始了。

扩展生成(也称为
egen
,以及它的用户编写的附加函数
egenmore
)对于以下任务非常方便:

ssc install egenmore    
bys PersonID: egen nvals=nvals(Place)
edit if nvals >1

我不知道“仍然将1和2视为单身人士”是什么意思,但这应该让你开始了。

这已经作为常见问题解答记录在案:从哪个

bysort id (value) : gen wanted = value[1] == "n" & value[_N] == "y" 
是将
value
作为字符串变量的解决方案。根据你说的

bysort id (value) : gen wanted = value[1] != value[_N] 
这是一个更普遍的解决方案。在这两个示例中,变量
wanted
对于wanted id为1,否则为0


缺少值会使问题复杂化

这已被记录为常见问题解答:从哪个

bysort id (value) : gen wanted = value[1] == "n" & value[_N] == "y" 
是将
value
作为字符串变量的解决方案。根据你说的

bysort id (value) : gen wanted = value[1] != value[_N] 
这是一个更普遍的解决方案。在这两个示例中,变量
wanted
对于wanted id为1,否则为0


缺少值会使问题复杂化

这已被记录为常见问题解答:从哪个

bysort id (value) : gen wanted = value[1] == "n" & value[_N] == "y" 
是将
value
作为字符串变量的解决方案。根据你说的

bysort id (value) : gen wanted = value[1] != value[_N] 
这是一个更普遍的解决方案。在这两个示例中,变量
wanted
对于wanted id为1,否则为0


缺少值会使问题复杂化

这已被记录为常见问题解答:从哪个

bysort id (value) : gen wanted = value[1] == "n" & value[_N] == "y" 
是将
value
作为字符串变量的解决方案。根据你说的

bysort id (value) : gen wanted = value[1] != value[_N] 
这是一个更普遍的解决方案。在这两个示例中,变量
wanted
对于wanted id为1,否则为0


缺少值会使问题复杂化

在Excel中使用VBA有很多方法可以做到这一点。我将从一个循环中的一个循环开始,该循环测试是否有任何其他ID具有相同的编号,它们是否具有相同的值,或者构建一个ID列表,并使用自动筛选和测试每个ID的所有值是否相同。您尝试了什么?(我对Stata代码特别感兴趣,但我想其他软件用户也会想知道。)@RobertoFerrer我尝试过通过预订ID:gen duplicate=\n然后使用
count if duplicate==1&response==1&response==0
对ID进行排序,其中1和0分别是y和n。。。几乎所有的组合都是如此。@RobertoFerrer我想我应该确定哪个预订ID有两个答案,然后计算重复的号码,但我不知道如何做。最好编辑您的问题以显示代码。有经验的Stata用户几乎可以阅读它,但对每个人来说,正确显示它会更清晰。在Excel中使用VBA有很多方法可以做到这一点。我将从一个循环中的一个循环开始,该循环测试是否有任何其他ID具有相同的编号,它们是否具有相同的值,或者构建一个ID列表,并使用自动筛选和测试每个ID的所有值是否相同。您尝试了什么?(我对Stata代码特别感兴趣,但我想其他软件用户也会想知道。)@RobertoFerrer我尝试过通过预订ID:gen duplicate=\n然后使用
count if duplicate==1&response==1&response==0
对ID进行排序,其中1和0分别是y和n。。。几乎所有的组合都是如此。@RobertoFerrer我想我应该确定哪个预订ID有两个答案,然后计算重复的号码,但我不知道如何做。最好编辑您的问题以显示代码。有经验的Stata用户几乎可以阅读它,但对每个人来说,正确显示它会更清晰。在Excel中使用VBA有很多方法可以做到这一点。我将从一个循环中的一个循环开始,该循环测试是否有任何其他ID具有相同的编号,它们是否具有相同的值,或者构建一个ID列表,并使用自动筛选和测试每个ID的所有值是否相同。您尝试了什么?(我对Stata代码特别感兴趣,但我想其他软件用户也会想知道。)@RobertoFerrer我尝试过通过预订ID:gen duplicate=\n然后使用
count if duplicate==1&response==1&response==0
对ID进行排序,其中1和0分别是y和n。。。几乎所有的组合都是如此。@RobertoFerrer我想我应该确定哪个预订ID有两个答案,然后计算重复的号码,但我不知道如何做。最好编辑您的问题以显示代码。有经验的Stata用户几乎可以阅读它,但它会