显示定义每一行的变量集

时间:2018-12-19 06:23:43

标签: stata

要说一个数据集是(personyear)级,则意味着该数据集的每一行都具有不同的(personyear),如下所示:

person  year  wage
  Mike   2000   10
  Mike   2010   30
  Jack   1990   20

如何使Stata准确显示唯一定义每一行的那些(personyear)变量集?

我想制作一个日志文件进行记录

person year

仅,但不显示任何个人信息(在日志文件中显示个人信息违反了数据提供者设置的规则)。

我该怎么办?

我想到的是以某种方式使用bysort

bysort person year: gen num=_n

如果每个num为1,则表示(personyear)定义了每一行。

但是,如果数据集非常大,那么检查每个num是否为1太麻烦了。有没有更聪明的方法?

1 个答案:

答案 0 :(得分:2)

命令import mysql.connector cnx1 = mysql.connector.connect(user='root',password='xxxx',host='127.0.0.1',database=db) cursor1 = cnx1.cursor() cnx2 = mysql.connector.connect(user='root',password='xxxx',host='127.0.0.1',database=db) cursor2 = cnx2.cursor() sql_cfs = ('select lat,lon from cfs') cursor1.execute(sql_cfs) for cfs in cursor1: [cfs_lat,cfs_lon] = cfs print (cfs_lat,cfs_lon) query = ("SELECT address, ((20903520) * " \ "acos (cos(radians(lon)) *" \ "cos(radians({})) * " \ "cos(radians({})-radians(lat)) + sin(radians(lon)) * " \ "sin( radians({})))) AS distance " \ "FROM vacants HAVING distance < 100;".format(cfs_lat,cfs_lon,cfs_lat)) print (query) cursor2.execute(query) for vacants in cursor2: print (vacants) 检查您提供的变量是否确实共同唯一地指定了观测值。这是您可以尝试的示例:

isid

注意原则:没有新闻就是好消息。

检查问题的另一种方法是通过. webuse grunfeld, clear . isid company variable company does not uniquely identify the observations r(459); . isid company year 。例如,尝试duplicates。就您而言,您不希望在日志中显示。但是,您首先要做的是通过

duplicates list person year匿名
person

,然后检查egen id = group(person) 上是否存在重复项。

另请参见this FAQ