楼主: 白青浅
1659 4

[面板数据求助] 合并字符串 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

硕士生

20%

还不是VIP/贵宾

-

威望
0
论坛币
1522 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
367 点
帖子
35
精华
0
在线时间
246 小时
注册时间
2017-3-21
最后登录
2024-11-18

楼主
白青浅 发表于 2020-10-30 11:52:58 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我的原始数据是不同公司(id)-不同年份(year)-新增注册地址(location),想要生成一个变量(Summary),汇总同一家公司所有年份的新增注册地信息。
  1. * Example generated by -dataex-. To install: ssc install dataex
  2.         clear
  3.         input double(id year) str6 location str20 Summary
  4.         1 2011 "北京" "北京,上海"      
  5.         1 2012 "上海" "北京,上海"      
  6.         2 2013 "天津" "天津,北京"      
  7.         2 2014 "北京" "天津,北京"      
  8.         3 2011 "广州" "广州,重庆,天津"
  9.         3 2012 "重庆" "广州,重庆,天津"
  10.         3 2012 "天津" "广州,重庆,天津"
  11.         end
复制代码
这是我写的代码,为啥总是报错?求助各位老师同学们!
  1. bys id year :gen Num=_N
  2.         gen a=Num-1
  3.         forvalue i=1/a {
  4.       gen Summary = location + location[_n+`i']
  5.         }
复制代码




二维码

扫码加我 拉你入群

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

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

关键词:字符串 generated Location generate forvalue Stata 面板数据 字符串合并 循环语句

回帖推荐

DΘstinyじò 发表于2楼  查看完整内容

同一ID的location值不同的时候,尝试以下代码: (学习交流~) bys id year这样除了第三组12年有重复,其他是没有重复,是唯一标识,感觉你不是想弄这个结果吧。 forvalus的最大是一个变量,值还是不唯一的,按之前的计算,a为0 ; 1两种 循环里面gen函数,循环第二次也会出错,会提示Summary已经存在。

沙发
DΘstinyじò 发表于 2020-10-30 14:56:21
同一ID的location值不同的时候,尝试以下代码:
  1. bys id (year) :gen Summary1=location  if _n==1
  2. bys id (year) :replace Summary1 = Summary1[_n-1] +"," +location if Summary1==""
  3. bys id (year) :replace Summary1 = Summary1[_N]
复制代码

(学习交流~)
bys id year这样除了第三组12年有重复,其他是没有重复,是唯一标识,感觉你不是想弄这个结果吧。
forvalus的最大是一个变量,值还是不唯一的,按之前的计算,a为0 ; 1两种
循环里面gen函数,循环第二次也会出错,会提示Summary已经存在。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 热心帮助其他会员

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

藤椅
白青浅 发表于 2020-10-31 09:22:34
DΘstinyじò 发表于 2020-10-30 14:56
同一ID的location值不同的时候,尝试以下代码:

(学习交流~)
思路清晰,代码简洁,学习了,非常感谢

突然有点疑惑以下两个代码的区别,可能是之前没有太留意:
  1. bys id year:gen a=_n
  2. bys id (year):gen b=_n
复制代码
再次表示感谢!!!

板凳
DΘstinyじò 发表于 2020-10-31 11:59:47
白青浅 发表于 2020-10-31 09:22
思路清晰,代码简洁,学习了,非常感谢

突然有点疑惑以下两个代码的区别,可能是之前没有太留意:再次 ...
加括号的变量只是进行了sort排序,不以此分组统计。

报纸
白青浅 发表于 2020-11-12 10:30:26
DΘstinyじò 发表于 2020-10-31 11:59
加括号的变量只是进行了sort排序,不以此分组统计。
好的 灰常感谢您!!

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

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