楼主: 朗啊朗
1196 3

[数据管理求助] 如何根据变量的特征生成新的变量? [推广有奖]

  • 2关注
  • 0粉丝

本科生

48%

还不是VIP/贵宾

-

威望
0
论坛币
3008 个
通用积分
5.3721
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2057 点
帖子
27
精华
0
在线时间
156 小时
注册时间
2016-2-1
最后登录
2023-7-30

楼主
朗啊朗 发表于 2020-1-8 19:50:44 |AI写论文
20论坛币
感谢您的回答!我自己摸索到了您这个代码的思路,不过我标记之后,发现我并没有解决我的问题,因为我最后想实现的是,  生成一个新的变量,如果ccount_id连续一样,并且wanted连续一样,那么,这个新变量的值全部编码为1;如果ccount_id连续一样,但是wanted出现1个或多个不同的值(不是连续一样),那么这个新变量就全部编码为0。

以我下面的这个例子为例,对于第一个id "0054F5D8-05DA-45CB-9EE5-F7E586833655" 它wanted的值是0,0,0,1, 那么生成的新变量的值就是0,0,0,0 ;对于第二个id "005B8478-5B59-4883-9EF3-33E357D57CC4"它wanted的值是0,0, 那么生成的新变量的值就是1,1。

请问有大神知道如何写代码吗?


---------------------- copy starting from the next line -----------------------
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str36 account_id float wanted
  4. "0054F5D8-05DA-45CB-9EE5-F7E586833655" 0
  5. "0054F5D8-05DA-45CB-9EE5-F7E586833655" 0
  6. "0054F5D8-05DA-45CB-9EE5-F7E586833655" 0
  7. "0054F5D8-05DA-45CB-9EE5-F7E586833655" 1
  8. "005B8478-5B59-4883-9EF3-33E357D57CC4" 0
  9. "005B8478-5B59-4883-9EF3-33E357D57CC4" 0
  10. end
复制代码

------------------ copy up to and including the previous line ------------------
关键词:including generated Starting generate previous

沙发
震震果实 发表于 2020-1-8 19:50:45
  1. sort account_id
  2. bys account_id:egen n=total(wanted)
  3. bys account_id:replace n=n/_N
  4. gen s=wanted-n
  5. replace s=1 if s==0
  6. replace s=0 if s!=0 & s!=1
复制代码

藤椅
黃河泉 在职认证  发表于 2020-1-9 08:24:54
虽然我有点看不懂你的问题,但根据楼上的解答,你也可以 (请先 ssc install egenmore):
  1. bys account_id: egen n = nvals(wanted)
  2. gen y = n == 1
复制代码

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-29 06:30