楼主: diannaoasd
1210 6

[编程问题求助] 关于剔除异常数据问题 [推广有奖]

  • 8关注
  • 7粉丝

已卖:1334份资源

讲师

32%

还不是VIP/贵宾

-

威望
0
论坛币
79917 个
通用积分
175.0726
学术水平
9 点
热心指数
5 点
信用等级
5 点
经验
5816 点
帖子
180
精华
0
在线时间
621 小时
注册时间
2010-12-6
最后登录
2025-12-25

楼主
diannaoasd 发表于 2019-11-10 10:08:27 |AI写论文
30论坛币
如图:(1)A公司、B公司、C公司各出现4次
(2)A公司class为11,B公司class为22,C公司class为33
(3)但现在问题是,A公司的class有个异常值是89,C公司的clss有个异常值是90
该如何编程自动剔除异常观测值,或者 将89改回11,将90改为33


  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str7 firm int classs
  4. "A公司" 11
  5. "A公司" 11
  6. "A公司" 11
  7. "A公司" 89
  8. "B公司" 22
  9. "B公司" 22
  10. "B公司" 22
  11. "B公司" 22
  12. "C公司" 33
  13. "C公司" 33
  14. "C公司" 33
  15. "C公司" 90
  16. end
复制代码





提问4剔除异常值.png (8.48 KB)

提问4剔除异常值.png

最佳答案

sungmoo 查看完整内容

bys firm: egen c=mode(classs) drop if classs!=c

沙发
sungmoo 发表于 2019-11-10 10:08:28
diannaoasd 发表于 2019-11-10 13:34
非常感谢,这个可以把异常值修正,将89替换成11,将90替换成33
如果直接将class为89、90的异常观测值剔除 ...
bys firm: egen c=mode(classs)
drop if classs!=c

藤椅
黃河泉 在职认证  发表于 2019-11-10 10:55:48
老实说,看不太出你资料的规则性,只能猜一下:
  1. bys firm: egen wanted = median(classs)
复制代码

板凳
sungmoo 发表于 2019-11-10 11:18:14
bys firm: egen c=mode(classs)
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
diannaoasd + 1 + 1 + 1 + 1 精彩帖子
黃河泉 + 5 + 5 + 5 精彩帖子

总评分: 论坛币 + 1  学术水平 + 6  热心指数 + 6  信用等级 + 6   查看全部评分

报纸
diannaoasd 发表于 2019-11-10 13:34:02
sungmoo 发表于 2019-11-10 11:18
bys firm: egen c=mode(classs)
非常感谢,这个可以把异常值修正,将89替换成11,将90替换成33
如果直接将class为89、90的异常观测值剔除,不知道可有相关代码?

地板
diannaoasd 发表于 2019-11-10 14:36:13
sungmoo 发表于 2019-11-10 14:06
bys firm: egen c=mode(classs)
drop if classs!=c
太厉害了,谢谢您~~

7
三重虫 发表于 2019-11-11 10:15:46
sungmoo 发表于 2019-11-10 10:08
bys firm: egen c=mode(classs)
drop if classs!=c

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-20 02:52