要说一个数据集是(person
,year
)级,则意味着该数据集的每一行都具有不同的(person
,year
),如下所示:>
person year wage
Mike 2000 10
Mike 2010 30
Jack 1990 20
如何使Stata准确显示唯一定义每一行的那些(person
,year
)变量集?
我想制作一个日志文件进行记录
person year
仅,但不显示任何个人信息(在日志文件中显示个人信息违反了数据提供者设置的规则)。
我该怎么办?
我想到的是以某种方式使用bysort
bysort person year: gen num=_n
如果每个num
为1,则表示(person
,year
)定义了每一行。
但是,如果数据集非常大,那么检查每个num
是否为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。