如何在Stata中拆分观测值?数据集转换技术咨询
Stata专属解决方案:长格式转宽格式适配你的需求
当然有啦!Stata里处理这种从长格式到宽格式的转换,reshape命令就是专门的工具,完美匹配你要实现的效果。因为你的变量都是字符串类型,我给你梳理具体步骤:
步骤1:将Number字符串转为数值型
reshape命令要求用于拆分的分组变量(也就是你的Number)是数值型,所以先把字符串格式的Number转成数值:
destring Number, replace
如果
Number里包含非数字字符,可以用destring Number, replace ignore("非数字字符")来忽略这些字符,比如ignore(",")忽略逗号。
步骤2:执行长转宽转换
用reshape wide命令,以Cluster作为分组依据(i参数),Number作为列的索引(j参数),拆分Rating变量:
reshape wide Rating, i(Cluster) j(Number)
执行后,你会得到Rating_1、Rating_2...这类变量,刚好对应每个Cluster下不同Number对应的Rating值。
可选:调整变量名(如果需要)
如果不想变量名带下划线,想改成Rating1、Rating2这种格式,可以用rename批量修改:
rename Rating_* Rating*
特殊情况处理
如果你的Number不是数字字符串(比如是"One"、"Two"这类文本),可以先给Number编码成数值型再转换:
encode Number, gen(Number_num) reshape wide Rating, i(Cluster) j(Number_num)
内容的提问来源于stack exchange,提问作者L. Nupt




