楼主: lawry
3995 7

[数据管理求助] 请问如何比较字符串变量的本期值和上期值是否相同并生成指示变量? [推广有奖]

  • 0关注
  • 1粉丝

硕士生

4%

还不是VIP/贵宾

-

威望
0
论坛币
893 个
通用积分
28.6134
学术水平
7 点
热心指数
10 点
信用等级
1 点
经验
1066 点
帖子
73
精华
0
在线时间
139 小时
注册时间
2005-10-31
最后登录
2023-10-2

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
向各位高人求教:想比较某一字符串变量的本期值(例如,E001)和上期值(例如,A001)是否相同,生成一个虚拟变量,相同为0,不同为1.谢谢啦。
二维码

扫码加我 拉你入群

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

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

关键词:字符串变量 字符串 虚拟变量 如何 字符串

本帖被以下文库推荐

沙发
jianglanjie 发表于 2014-6-2 00:19:15 |只看作者 |坛友微信交流群
利用转换——计算变量,注意利用如果(IF)按钮的子对话框设置条件
不知能否有助于你的问题

操作窗口.docx

239.22 KB

已有 1 人评分热心指数 收起 理由
crystal8832 + 1 热心帮助其他会员

总评分: 热心指数 + 1   查看全部评分

使用道具

藤椅
lawry 发表于 2014-6-2 09:52:15 |只看作者 |坛友微信交流群
谢谢jianglanjie的回复。但你似乎说的SPSS,不是STATA。能否有较一般的方法解决这个问题,例如变量上期值为“湖北”,本期值为“湖南”,如何比较本期相对于上期有没有变化?数值型变量很好做,但字符型做不出来。

使用道具

板凳
lawry 发表于 2014-6-2 10:08:54 |只看作者 |坛友微信交流群
例如,有以下几个变量,id year auditor,auditor是字符型变量,我想看一下本期与上期auditor有没有变化。我用了以下命令:
tsset id year
g ex_auditor=L.auditor
但生成的ex_audito变量均为缺失值.
求教高人帮忙。

使用道具

报纸
ywh19860616 发表于 2014-6-2 10:22:15 |只看作者 |坛友微信交流群
lawry 发表于 2014-6-2 10:08
例如,有以下几个变量,id year auditor,auditor是字符型变量,我想看一下本期与上期auditor有没有变化。我 ...
  1. clear
  2. input str20 auditor
  3. 湖北
  4. 湖南
  5. 上海
  6. 上海
  7. 厦门
  8. 厦门
  9. 福州
  10. 武汉
  11. 长沙
  12. 长沙
  13. end

  14. egen index=group(auditor)
  15. gen id=index-index[_n-1]
复制代码
id值等于0就说明改变了。
已有 1 人评分经验 论坛币 学术水平 热心指数 收起 理由
crystal8832 + 10 + 10 + 1 + 1 观点有启发

总评分: 经验 + 10  论坛币 + 10  学术水平 + 1  热心指数 + 1   查看全部评分

一份耕耘,一份收获。

使用道具

地板
lawry 发表于 2014-6-2 10:53:03 |只看作者 |坛友微信交流群
感谢ywh19860616!这个方法实质上是将字符变量auditor转换为数值型,在这种情况下,也可以用以下命令:
tsset id year
egen index=group(auditor)
gen index_lag=L.index
gen switch=cond(index!=index_lag,1,0) if  index_lag<.
再次感谢!
已有 1 人评分经验 论坛币 学术水平 热心指数 收起 理由
crystal8832 + 10 + 10 + 1 + 1 观点有启发

总评分: 经验 + 10  论坛币 + 10  学术水平 + 1  热心指数 + 1   查看全部评分

使用道具

7
蓝色 发表于 2014-6-2 15:06:26 |只看作者 |坛友微信交流群
字符也是可以比较的
还是用楼上的程序
clear
input str20 auditor
湖北
湖南
上海
上海
厦门
厦门
福州
武汉
长沙
长沙
end

*字符直接比较
gen  id1=(auditor!=auditor[_n-1])  if _n>1

egen index=group(auditor)
gen id2=index-index[_n-1]
list


*****************
*结果

. clear

. input str20 auditor

                  auditor
  1. 湖北
  2. 湖南
  3. 上海
  4. 上海
  5. 厦门
  6. 厦门
  7. 福州
  8. 武汉
  9. 长沙
10. 长沙
11. end

.
. gen  id1=(auditor!=auditor[_n-1])  if _n>1
(1 missing value generated)

.
. egen index=group(auditor)

. gen id2=index-index[_n-1]
(1 missing value generated)

. list

     +-----------------------------+
     | auditor   id1   index   id2 |
     |-----------------------------|
  1. |    湖北     .       3     . |
  2. |    湖南     1       4     1 |
  3. |    上海     1       5     1 |
  4. |    上海     0       5     0 |
  5. |    厦门     1       7     2 |
     |-----------------------------|
  6. |    厦门     0       7     0 |
  7. |    福州     1       2    -5 |
  8. |    武汉     1       6     4 |
  9. |    长沙     1       1    -5 |
10. |    长沙     0       1     0 |
     +-----------------------------+


已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
crystal8832 + 10 + 10 + 1 + 1 + 1 观点有启发

总评分: 经验 + 10  论坛币 + 10  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

8
lawry 发表于 2014-6-2 23:02:13 |只看作者 |坛友微信交流群
十分感谢蓝色兄的code!受教了。

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-6-9 16:22