stata 如何处理文本信息进行赋值?

目前一堆医疗机构的名称,需要进行分类,不再想用excel筛选了。例如凡是含有 医院 的都建立新变量赋值为1 ,含有 疾控 的产生新变量 标记为 2 等…
关注者
37
被浏览
144,579

7 个回答

谢邀。可以用 strmatch

假如医疗机构的名称的变量是name,新变量叫new

gen new = .

replace new = 1 if strmatch(name, "*医院*")

replace new = 2 if strmatch(name, "*疾控*")

通过引号中的*可以控制被搜索词的位置。如词语前后各有一个*,表示该词可出现在name中的任何位置。如果是只在前面出现星号,"*医院",则只搜索在name中词尾出现的"医院"。

默认情况下,Stata 中的 encode 命令会将字符变量按字母排序。字符变量的不同取值,按照排列顺序分别映射到数值 1,2,...,并且为生成的数字变量添加值标签,用以说明字符串-数字的对应关系。另外,Stata中经常需要对字符变量做处理,将字符变量转换为数值变量,但字符变量的形式多样,包括标识符变量/分类变量、日期变量、纯数字变量等,在转换过程中需要使用不同的转换方法。

参见连享会推文:

相关推文

Note:产生如下推文列表的 Stata 命令为:
. lianxh 文字
. songbl 文字
安装最新版 lianxh / songbl 命令:
. ssc install lianxh, replace
. ssc install songbl, replace