楼主: jiangxinfeng
5463 7

[编程问题求助] 求助符合条件的字符串的选择! [推广有奖]

  • 1关注
  • 11粉丝

已卖:54份资源

学科带头人

13%

还不是VIP/贵宾

-

威望
1
论坛币
1569 个
通用积分
56.4624
学术水平
16 点
热心指数
21 点
信用等级
8 点
经验
111655 点
帖子
961
精华
0
在线时间
2108 小时
注册时间
2009-9-10
最后登录
2025-1-16

受到警告 楼主
jiangxinfeng 发表于 2013-1-9 09:47:17 |AI写论文
提示: 受到警告  蓝色 发帖格式不符规定,请参照版规发贴,谢谢 ; ... 2013-1-9 13:16

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我有一组数据。
变量依次为:股票代码stkcd,样本的年度accper,员工职位ocp,性别gend,年龄age,学历edu,任职开始时间start,和简历resume。
首先,我是每一个股票不同年度的数据算作不同的样本的。
现在我想做:
1.排查。在每个年度内每个股票代码的分组内,ocp gend age edu start resume这几个变量的任何一个样本值缺失,那么这个股票代码的这个年度分组内的所有数据全部剔除。
2.计算在任时间,也就是accper减去start 单位为年
3.选择满足条件的个案。resume变量里只要包含“博士研究生”或者“硕士研究生”或者“本科”就保留下来。


例如,图中000002股票2004年分组中的 第一个员工edu缺失。那么 所有000002股票2004年的数据全部剔除。(不过。。我给的数据可能有点少,可能会全都剔除了或者留下的不多。。)
然后resume里面 只要有上述条件中的一个,这个员工的信息就保留。
再次感谢!
2.4M的“样本”数据是stata数据,大家下载之后把扩展名改成.dta就可以打开了 谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:字符串 STATA数据 resume Start CCPER 字符串

QQ截图20130109093522.png (77.24 KB)

QQ截图20130109093522.png

样本.xls
下载链接: https://bbs.pinggu.org/a-1248431.html

1.02 MB

样本.xls

2.42 MB

沙发
jiangxinfeng 发表于 2013-1-9 21:22:12
是描述的不清楚么 大家有什么好的方法啊?

藤椅
sungmoo 发表于 2013-1-9 21:29:21
1.排查。在每个年度内每个股票代码的分组内,ocp gend age edu start resume这几个变量的任何一个样本值缺失,那么这个股票代码的这个年度分组内的所有数据全部剔除。
*设ocp、gend、age、edu、start是数值型,resume是字符型:

bys stkcd year: egen s=sum(ocp+gend+age+edu+start==.|resume=="")
drop if s

板凳
jiangxinfeng 发表于 2013-1-9 22:19:25
sungmoo 发表于 2013-1-9 21:29
https://bbs.pinggu.org/thread-2150556-1-1.html
谢谢!!关键是第一个问题,就是把有缺失值的变量所在的组也一并删掉。请问可以怎么操作呢?

报纸
fgleric 发表于 2013-1-10 01:15:46
encode ocp gend age edu start resume,replace
loc var "ocp gend age edu start resume"
foreach m of loc var{
gen `m'_judge=1
}
levelsof stkcd, loc (stock)
bys stkcd: gen num=_N
foreach i of loc stock{
foreach i of loc var{
qui sum `j' if stkcd==`i'
qui return list
replace `j'_judge=0 if r(N)!=num
}
}

gen judge=ocp_judge* gend_judge* age_judge *edu_judge* start_judge* resume_judge
drop if judge==0
drop *_judge num

地板
jiangxinfeng 发表于 2013-1-10 10:33:26
fgleric 发表于 2013-1-10 01:15
encode ocp gend age edu start resume,replace
loc var "ocp gend age edu start resume"
foreach m of  ...
你好!版主!谢谢你的回复。有一个问题,刚刚开始运行encode的时候 就显示 too many variables specified 请问怎么处理呢?

7
fgleric 发表于 2013-1-10 11:23:42
jiangxinfeng 发表于 2013-1-10 10:33
你好!版主!谢谢你的回复。有一个问题,刚刚开始运行encode的时候 就显示 too many variables specified ...
我不是该版版主

try this

loc var "ocp gend age edu start resume"
foreach m of loc var{
gen `m'_judge=1
}
levelsof stkcd, loc (stock)
bys stkcd: gen num=_N
foreach i of loc stock{
foreach i of loc var{
qui sum `j' if stkcd==`i'
qui return list
replace `j'_judge=0 if r(N)!=num
}
}

gen judge=ocp_judge* gend_judge* age_judge *edu_judge* start_judge* resume_judge
drop if judge==0
drop *_judge num

8
jiangxinfeng 发表于 2013-1-10 11:32:55
fgleric 发表于 2013-1-10 11:23
我不是该版版主

try this
谢谢!! bys stkcd: gen num=_N

. foreach i of loc stock{
  2. foreach i of loc var{
  3. qui sum `j' if stkcd==`i'
  4. qui return list
  5. replace `j'_judge=0 if r(N)!=num
  6. }
  7. }
variable _judge not found

出现了这个问题。。。怎么办呢。。。

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-8 07:13