2184 5

[字符问题求助] 求问在stata里如何识别一串汉字中的某个词 [推广有奖]

  • 0关注
  • 0粉丝

高中生

85%

还不是VIP/贵宾

-

威望
0
论坛币
5 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
173 点
帖子
3
精华
0
在线时间
91 小时
注册时间
2022-10-5
最后登录
2024-9-24

楼主
我才是小羊本人 发表于 2023-5-8 20:10:49 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
比如主题为major,其中有“计算机科学”、“工程管理与计算机”等字符串,我想要识别包含有”计算机“”工程“的字符串,并且将该字符串转变为数值1,剩下的其它字符串为0。应该怎么做哇如果用筛选会把其他的也删掉所以好像不行
二维码

扫码加我 拉你入群

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

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

关键词:Stata tata Major 计算机科学 工程管理

沙发
mytianxia 发表于 2023-5-8 21:05:17
gen bz=0
replace bz=1 if regexm(major,"计算机") | regexm(major,"工程")
replace major="0" if bz==0
replace major="1" if bz==1
drop bz

藤椅
mytianxia 发表于 2023-5-8 21:09:04
gen bz=0
replace bz=1 if regexm(major,"计算机")| regexm(major,"工程")
replace major="0" if bz==0
repalce major="1" if bz==1

板凳
mytianxia 发表于 2023-5-8 21:20:35
gen bz=0
replace bz=1 if regexm(major,"计算机") | regexm(major,"工程")
replace major="0" if bz==0
replace major="1" if bz==1
drop bz

报纸
我才是小羊本人 发表于 2023-5-8 23:32:50
mytianxia 发表于 2023-5-8 21:20
gen bz=0
replace bz=1 if regexm(major,"计算机") | regexm(major,"工程")
replace major="0" if bz==0
...
太感谢了!![em23][em23]

地板
水业咨询 在职认证  企业认证  发表于 2023-5-9 09:27:57
你可以使用Stata中的字符串函数和条件语句来实现。具体步骤如下:

1. 使用strpos函数查找字符串中是否包含“计算机”或“工程”。该函数返回子字符串在主字符串中的位置,如果没有找到则返回0。

2. 使用条件语句判断strpos函数返回的值是否大于0,如果大于0则说明字符串中包含“计算机”或“工程”,将该变量赋值为1,否则赋值为0。

下面是一个示例代码:

```
gen major_num = 0
replace major_num = 1 if strpos(major, "计算机") > 0 | strpos(major, "工程") > 0
```

其中,`major`为包含专业名称的字符串变量,`major_num`为将字符串转换为数值后的新变量。代码中使用了`gen`命令新建了一个名为`major_num`的变量,并将其初始值设为0。然后使用`replace`命令和条件语句来根据字符串中是否包含“计算机”或“工程”来更新`major_num`的值。

注意,该方法只能识别包含“计算机”或“工程”的字符串,如果字符串中同时包含其他关键词,可能会出现错误。如果需要更精确的匹配,可以使用正则表达式或其他字符串处理函数。

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

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