逆光奔跑 发表于 2019-9-11 14:43:18

Stata字符型数据按符号截取和转换


例如某一变量(size)表示物体长宽高的大小: 3*4*5; 0.2*4*12;3*0.4*10mm;2mm*3mm*4mm。
该变量的长度,格式均不同,如何提取出最长径的长度并转为数值型呢?

方法:
第一步,根据*号符号将长宽高的数据分开,命令为split(size), parse(*)。
此步骤会自动生成size1,size2,size3三个变量,但是每个变量里面还有部分含有单位mm,不能直接destring; 且长度不同,不能用substr命令。
第二步,提取出每个变量中“mm”符号前的数据,命令为egen size_1=ends(size1),punct("mm")。
此步骤生成的size_1,_2,_3为纯数字,可以直接destring。
第三步,生成新变量代表其中的最大值,命令为egen sizemax=rowmax(size_1 size_2 size_3)。
第四步,以3mm为cut-off分组,命令为 gen sizecategory= (sizemax>3)

nyj215 发表于 2019-9-16 21:39:40

太有用了!
页: [1]
查看完整版本: Stata字符型数据按符号截取和转换