全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
4042 7
2009-04-12
 var1 var2 var2 var4 var5
 x 1   
 x 1   
 x 0   
 y 2   
 y 0   
 y 0   
 z 3   
 z 3   
 z 3   

求stata命令:

如何以var1为准,将var2中的值替换为出现频率最高的,比如x中1出现两次,而0出现一次,那么就要将0替换为1.

另外,如何将vart2中的所有值替换为最大或最小值,比如将y中的0全部替换为2.

谢谢大侠指教!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2009-4-13 08:21:00

egen var3 = count(var2), by(var1)

egen var4 = min(var2), by(var1)

egen var4 = max(var2), by(var1)

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-4-13 10:12:00
以下是引用abnerfoo在2009-4-12 22:52:00的发言:如何以var1为准,将var2中的值替换为出现频率最高的,比如x中1出现两次,而0出现一次,那么就要将0替换为1.

  
bys var1 var2: egen n=count(var2)
bys var1: egen m=max(n)
replace var2=. if n!=m
bys var1: egen v=min(var2)
replace var2=v
drop n m v


eblog  金币 +1  金钱 +100  奖励 2009-4-15 9:29:00
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-4-13 10:19:00
以下是引用abnerfoo在2009-4-12 22:52:00的发言:如何将var2中的所有值替换为最大或最小值,比如将y中的0全部替换为2

 
bys var1: egen max=max(var2)
bys var1: egen min=min(var2)

*观察新变量max与min。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-4-13 14:13:00

谢谢版主!如果出现频数相同,即替换为数值最小的那个值。如按var1, var2按序有5个值:1/1/2/2/3, 如何将这五个值都替换为1呢?或者有可能替换为2.

昨天没考虑到频数相同情况。也许更复杂些,写了半天还是没写出来。只能求高手了,谢谢指教!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-4-13 15:49:00
以下是引用abnerfoo在2009-4-13 14:13:00的发言:如果出现频数相同,即替换为数值最小的那个值

前面那组命令,就是实现这样的功能。

bys var1 var2: egen n=count(var2)
bys var1: egen m=max(n)
replace var2=. if n!=m
bys var1: egen v=min(var2)
replace var2=v
drop n m v

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群