全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
1416 6
2024-08-27
使用encode命令会导致相同字符转换成不同的数值,比如变量x,有北京,上海,天津。变量y有山东,北京,天津,湖南,这样会导致encode或者egen group()对文本赋值不同,这种情况应该怎么处理?
二维码

扫码加我 拉你入群

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

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

全部回复
2024-8-28 09:39:39
直接匹配对应的行政区划代码
二维码

扫码加我 拉你入群

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

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

2024-8-28 13:57:30
不能使用encode来处理
这是错误的做法
用汉字来匹配就行 花点时间
二维码

扫码加我 拉你入群

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

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

2024-8-28 14:31:17
这个我现在处理好了,现在又有个问题,假设id=1的企业有5个主营业务,然后其他企业有若干个主营业务,我想找出id=1的企业的同行企业个数,该怎么做?我写了一个循环
gen match=0
forvalue v = 1/18{
                forval i = 1/18{
                        replace match = 1 if 主营业务`v' == 主营业务`i'_2 & 主营业务`i'!="" & 主营业务`i'_2!=""
                }
        }
但这样会使match全为1 ,应该是包括自身导致的,怎样除去自身进行匹配啊
二维码

扫码加我 拉你入群

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

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

2024-8-28 14:33:30
同行企业就是主营业务相同就行,主营业务是字符型变量
核心思想就是让id=1的企业用主营业务1和企业企业的主营业务1-18进行匹配,如果有相同则match取1,然后再用主营业务2匹配,有相同则match取1,以此类推
二维码

扫码加我 拉你入群

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

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

2024-8-28 14:34:26
在Stata中将两个字符串变量转换为数值型变量,并确保相同字符被赋予相同的数值,可以使用以下步骤:

1. **创建一个新变量**:首先需要创造一个新的数值型变量来存储编码后的结果。但是直接对字符串变量进行编码可能会遇到问题,如果不同的变量中有相同的类别(例如“北京”在两个不同的字符串变量中)。

2. **合并数据集**:为了解决这个问题,可以先将这两个含有重叠类别的字符串变量合并到一起,创造一个临时的数据集,在这个数据集中包含所有的不重复的分类。比如,你有变量x和y,你可以首先生成一个临时数据集z,其中包含了x的所有值以及y中没有被x覆盖的值。

3. **使用`encode`命令**:在新的数据集(或合并后的数据)上运行`encode`命令来创建一个编码过的数值型变量。比如:

   ```
   use x, clear
   preserve
   append using y
   encode variable_name, gen(new_var)
   ```

   这里的`variable_name`是你想编码的变量名称,而`new_var`是新生成的数值型变量。

4. **处理合并问题**:由于我们是在一个包含所有可能值的数据集上运行`encode`命令,这确保了即使在不同的原始变量中出现相同的字符串(如“北京”),它们也将被赋予相同的编码。

5. **恢复数据集并应用编码**:之后你可能需要使用`restore`命令来回到初始状态,并利用生成的编码规则对原来的变量进行转换。但是,在合并和编码步骤后,你可以使用生成的新变量`new_var`在你的分析中代替原始的字符串变量。

6. **清理**:最后不要忘记清理临时文件或数据集,以保持工作环境的整洁。

下面是一个完整的示例:

```
clear all
input str10 x str10 y
"北京" "山东"
"上海" ""
"天津" "北京"
end

append using y, clear

* 将x和y合并到一个新的变量combined中,删除重复值。
egen combined = concat(x y)
replace combined = trim(combined)

* 然后对combined编码
encode combined, gen(combined_code)

* 这里你可以使用combined_code作为新的数值型变量进行分析。

* 清理临时数据和变量(根据需要)
drop x y combined

* 恢复原始数据状态(如果在分析前需要)
restore
```

请注意,上述示例中的代码可能需要根据你的具体数据集进行相应的调整。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群