楼主: wan68g
10746 8

[数据管理求助] 如何提取公司简称中的ST,并把这些公司删除 [推广有奖]

  • 1关注
  • 0粉丝

大专生

26%

还不是VIP/贵宾

-

威望
0
论坛币
24 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
527 点
帖子
36
精华
0
在线时间
14 小时
注册时间
2012-10-22
最后登录
2015-4-9

楼主
wan68g 发表于 2014-2-26 14:37:13 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如何提取公司简称中的ST以及*ST,并把这些公司删除?怎么写stata命令啊?
二维码

扫码加我 拉你入群

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

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

关键词:如何提取 stata命令 Stata tata 如何

沙发
ywh19860616 发表于 2014-2-26 15:41:03
  1. . input str20 var1

  2.                      var1
  3.   1. st
  4.   2. stt
  5.   3. 123st
  6.   4. adst
  7.   5. abdcd
  8.   6. end

  9. . gen idf=strmatch(var1,"*st") +strmatch(var1,"st*")

  10. . keep if idf==0
复制代码
最好能附上样本数据,才知道你的数据形式。
一份耕耘,一份收获。

藤椅
wan68g 发表于 2014-2-26 23:52:47
name
光华控股
闽福发A
湖南投资
S 湘火炬
江铃汽车
ST 太光
*ST 广夏
莱茵置业

那这个变量里面如何把那些带帽子公司删除呢

板凳
ywh19860616 发表于 2014-2-27 08:04:29
wan68g 发表于 2014-2-26 23:52
name
光华控股
闽福发A
这里面就删除 *ST 广夏?
你把上面命令的字符替代为你自己的,就可以用。
一份耕耘,一份收获。

报纸
wan68g 发表于 2014-2-27 12:17:49
我采用你提供的命令,但是idf变量中全是0值

地板
呜喵喵 发表于 2018-8-5 13:24:51
同求解答

7
经管金燕 发表于 2023-5-22 11:10:40
gen idf=strmatch(证券简称,"*ST") +strmatch(证券简称,"ST*")
换成大写即可

8
153_1581220913 学生认证  发表于 2024-2-25 09:06:01
//剔除ST、SST、*ST、PT企业样本
drop if substr( ShortName ,1,2)=="ST"//ST是三年内亏损的
drop if substr( ShortName ,1,3)=="*ST"//*ST是连续三年亏损的
drop if substr( ShortName ,1,2)=="PT"//PT以前用的,相当与现在的*ST
drop if substr( ShortName ,1,3)=="SST"//SST是未股改的亏损股
我通常是这么做的

9
赵安豆 发表于 2025-6-3 18:55:23
在Stata中,你可以使用`stringr`或者直接使用字符串函数来处理这个问题。但是,标准的Stata没有包含`stringr`包,这是一个R语言的库。因此我们将使用Stata内建的字符串操作功能。

首先,假设你的公司简称存储在一个名为`company_name`的变量中,并且你想要基于这个变量创建一个新的过滤后的数据集(即删除了包含ST或*ST的公司)。

以下是一个可能的命令序列:

```stata
* 假设你的数据已经在内存中加载好了
preserve

* 生成一个标志,表示公司简称是否包含 "ST" 或 "*ST"
gen is_st = strpos(company_name, "ST") > 0 | strpos(company_name, "*ST") > 0

* 使用这个新变量过滤掉包含 "ST" 或 "*ST" 的公司
keep if !is_st

* 删除临时生成的标志变量(可选)
drop is_st

restore
```

这里是每一步的解释:

1. `preserve` 命令用于保存当前数据集的状态,这样在处理完数据后可以恢复到原始状态。
2. 使用 `strpos()` 函数来检查公司简称是否包含 "ST" 或 "*ST"。如果找到则返回位置(大于0),否则返回0。通过逻辑或运算符 `|` 将两个条件合并在一起。
3. 生成一个名为 `is_st` 的变量,如果公司简称中包含上述字符串,则该值为1,否则为0。
4. 使用 `keep if !is_st` 命令保留那些 `is_st` 变量值为0的观测(即不含有 "ST" 或 "*ST" 的公司)。
5. 最后,你可以选择删除临时变量 `is_st` 来清理数据集。这一步是可选的。

以上步骤可以有效地过滤掉包含特殊标记“ST”或“*ST”的公司简称的数据点。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



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

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